home *** CD-ROM | disk | FTP | other *** search
/ Precision Software Appli…tions Silver Collection 1 / Precision Software Applications Silver Collection Volume One (PSM) (1993).iso / demos / mag6demo.exe / M600D2.ZIP / MAG6DOC.ZIP / MAGNUM6.DOC next >
Text File  |  1992-06-09  |  652KB  |  16,723 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                 Gilmore Systems "MAGNUM BBS (r) SYSTEM FOR OS/2"
  22.                                  Version 6.00C
  23.  
  24.  
  25.  
  26.  
  27.                         First Printing: September, 1989
  28.                            This Printing: June, 1992
  29.  
  30.  
  31.  
  32.                    (C)Copyright Gilmore Systems - 1989, 1992
  33.  
  34.                             - All rights reserved -
  35.  
  36.  
  37.  
  38.                                 Gilmore Systems
  39.                              1285 Falling Star Ave.
  40.                          Thousand Oaks, CA 91362 - USA
  41.  
  42.                              Voice: (818) 706-9800
  43.                               FAX: (818) 706-2785
  44.                               BBS: (818) 706-9805
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.     First Printing: September, 1989
  54.      This Printing:      June, 1992
  55.  
  56.     All programs and documentation written by: Chuck B. Gilmore
  57.                                                Gilmore Systems
  58.  
  59.     (C)Copyright Gilmore Systems, 1989, 1992 - All Rights Reserved
  60.  
  61.     No part  of this  publication may  be reproduced,  stored in a retrieval
  62.     system,  or  transmitted,  in  any  form  or  by  any means, electronic,
  63.     mechanical,  photocopying,  recording,  or  otherwise, without the prior
  64.     written permission of Gilmore Systems.
  65.  
  66.  
  67.  
  68.                                    Disclaimer
  69.  
  70.     Gilmore Systems makes no  representations or warranties with  respect to
  71.     the contents hereof and specifically disclaims any implied warranties of
  72.     merchantability or fitness for any particular purpose.  Further, Gilmore
  73.     Systems  reserves  the  right  to  revise  this  publication and to make
  74.     changes from time  to time in  the content hereof  without obligation of
  75.     Gilmore Systems to notify any  such person of such revision  or changes.
  76.     Under  no  circumstances  will  Gilmore  Systems  or  the author be held
  77.     responsible for any  consequential or inconsequential  damages resulting
  78.     from the use or misuse of any furnished programs or documentation.
  79.  
  80.                 Hayes is a trademark of Hayes Computer Products
  81.           IBM is a trademark of International Business Machines, Inc.
  82.                    Intel is a trademark of Intel Corporation
  83.                   Magnum BBS is a trademark of Gilmore Systems
  84.                Microsoft is a trademark of Microsoft Corporation.
  85.                  MultiTech is a trademark of Multi Tech Systems
  86.                     OS/2 is a trademark of IBM and Microsoft
  87.                US Robotics and HST are trademarks of US Robotics
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.             This is a DEMO copy of "Magnum BBS"(r) Software for OS/2
  101.  
  102.  
  103.  
  104.       This is a 2-node DEMO version (1 dialup node, 1 local/console node)
  105.  
  106.  
  107.       The following restrictions have been built into the DEMO:
  108.  
  109.  
  110.            - Up to 128 Users can be held in the USER database
  111.            - Up to 128 Messages can be held in the MESSAGE database
  112.            - Up to 128 Files can be held in the FILE database
  113.  
  114.            - Encryption of mail has been deactivated
  115.            - Packing of the databases has been deactivated
  116.            - Remote (Magnum-to-Magnum) mail has been deactivated
  117.            - MILC commands @E2 and @E3 have been deactivated
  118.  
  119.            - Any third-party add-ons will not function
  120.  
  121.            - All optional ($) modules will not function:
  122.               - Extended FileBase (provides up to 6,656 file areas)
  123.               - Extended MsgBase (provides up to 6,656 conference areas)
  124.               - Callback Module
  125.               - Pipe module for OS/2 workstations
  126.               - Pipe module for DOS 5 workstations
  127.  
  128.            - DEMO version has a serial# of 1111111111 (non-unique)
  129.  
  130.            - Limited technical support will be provided to those using
  131.              the DEMO version.
  132.  
  133.            - Access to the "Magnum Sysop" file and message sections at our
  134.              Thousand Oaks, California BBS location is restricted to Sysops
  135.              using the commercial version.
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.                                 IMPORTANT NOTE!
  144.  
  145.  
  146.     The remainder of this document is IDENTICAL to the commercial user
  147.     manual. Be certain to keep in mind the restrictions given on the reverse
  148.     page when using the demo (ie: Chapter 15 does not apply, MILC commands
  149.     @E2 and @E3 do not apply, packing the databases do not apply, etc)!
  150.  
  151.     However, even with the restrictions imposed, we're sure you'll agree
  152.     that Magnum BBS is perhaps the most powerful BBS software on ANY
  153.     platform. The DEMO version alone will outperform what you've come to
  154.     expect from BBS software. We encourage you to compare the features and
  155.     functionality of Magnum BBS with any other, as well as our competitive
  156.     pricing structure, technical support, and upgrade policies. In the
  157.     meantime, enjoy the fully-functional demo (less the restrictions)!
  158.  
  159.  
  160.  
  161.     Table of Contents                                                Page  1
  162.  
  163.  
  164.                                 TABLE OF CONTENTS
  165.  
  166.  
  167.     MAGNUM BBS (r) system for OS/2 ..................................... 1-1
  168.          Optional add-on modules available from Gilmore Systems ........ 1-2
  169.          Configuring MAGNUM ==> start here <== ......................... 1-3
  170.          Configuring MAGNUM ............................................ 1-4
  171.  
  172.     Directory Structure of MAGNUM ...................................... 2-1
  173.          Creating Subdirectories ....................................... 2-2
  174.          Order of Display Files ........................................ 2-7
  175.  
  176.     Running MAGNUM BBS ................................................. 3-1
  177.          Starting MAGNUM BBS for the First Time ........................ 3-2
  178.          Starting Your FILES Database .................................. 3-4
  179.  
  180.     Customizing MAGNUM - Display Files/MILC Commands ................... 4-1
  181.          Color Commands (@A) ........................................... 4-2
  182.          Branch (IF) Commands (@B) ..................................... 4-3
  183.          Screen Control Commands (@C) .................................. 4-5
  184.          Date Conversion Function (@D) ................................. 4-8
  185.          External and RJE Program Execution Commands (@E) ............. 4-10
  186.          Miscellaneous @E commands .................................... 4-13
  187.          Additional @E commands for 'Extended FileBase and MsgBase' ... 4-15
  188.          Include File Commands (@I) ................................... 4-16
  189.          Date Manipulation Commands (@J and @Y) ....................... 4-18
  190.          Call Command (@K) ............................................ 4-19
  191.          Security Level Commands (@L) ................................. 4-20
  192.          Match Filename in FILE DATAbase (@M) command ................. 4-21
  193.          Numeric (@N) Commands (ie: mathematics, I/O, etc) ............ 4-22
  194.          Other (Miscellaneous) Commands (@O) .......................... 4-27
  195.          Position (Label) Commands (@P) ............................... 4-30
  196.          Retain (@R), File (@F) and Query (@Q) MILC Variables @Z & @N . 4-31
  197.          Stack Keystrokes Command (@S) ................................ 4-33
  198.          Text to Log (activity) File (@T) ............................. 4-34
  199.          User Substitution Commands (@U) .............................. 4-35
  200.          View System Variables (@V) ................................... 4-39
  201.          Wait Command (@W) ............................................ 4-41
  202.          String (@Z) Commands (ie: String Logic, I/O, etc) ............ 4-42
  203.          Character Display - @\ command. .............................. 4-46
  204.          "Sysop Only" MILC commands: @$x, @&x, @!x, and @?x ........... 4-47
  205.          Advanced MILC Command Usage - Indirect Addressing ............ 4-49
  206.          Advanced MILC Command Usage - Enhanced Indirect Addressing ... 4-51
  207.  
  208.     MAGNUM's Sysop Console ............................................. 5-1
  209.          The Bell, Forceoff, Switch and Info Commands .................. 5-2
  210.          The "* auto" and "* noauto" commands .......................... 5-4
  211.          The level, print and lockout commands ......................... 5-5
  212.          The active, time, announce/normal, and logon commands ......... 5-6
  213.          The endnow, end, shutdown and msg commands .................... 5-8
  214.          miscellaneous commands ....................................... 5-10
  215.          CHATting between SYSOP (you) and a USER via the Console ...... 5-15
  216.          TEST Mode (Testing your modem) ............................... 5-16
  217.  
  218.  
  219.  
  220.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  221.  
  222.  
  223.  
  224.     Page  2                                                Table of Contents
  225.  
  226.  
  227.     Back to Display Files & Subdirectories ............................. 6-1
  228.          The PROGRAM DIRECTORY ......................................... 6-2
  229.          The SESSION DIRECTORY ......................................... 6-4
  230.          The BULLETIN DIRECTORY ....................................... 6-10
  231.          The MENU DIRECTORY ........................................... 6-11
  232.          The HELP DIRECTORY ........................................... 6-12
  233.          The DISPLAY DIRECTORY ........................................ 6-13
  234.          The EXTERNAL DIRECTORY ....................................... 6-15
  235.          The RJE DIRECTORY ............................................ 6-16
  236.          The MESSAGE SUBDIRECTORY ..................................... 6-17
  237.          The WORK SUBDIRECTORY ........................................ 6-18
  238.          The SYSOUT SUBDIRECTORY ...................................... 6-19
  239.          The USER SUBDIRECTORY ........................................ 6-20
  240.  
  241.     Using Magnum BBS as a USER ......................................... 7-1
  242.          The MAIN MENU ................................................. 7-3
  243.          The MESSAGE MENU .............................................. 7-9
  244.          The FILES MENU ............................................... 7-15
  245.          The SYSOP MENU ............................................... 7-25
  246.          The RJE MENU ................................................. 7-36
  247.  
  248.     Magnum's ACE (Automatic Command Execution) Event Handler ........... 8-1
  249.  
  250.     The MBBSEXEC Sysop Maintenance Utility Program ..................... 9-1
  251.          MBBSEXEC Field Names .......................................... 9-5
  252.          Field Names for the USER Database ............................. 9-6
  253.          Field Names for the MSG Database .............................. 9-9
  254.          Field Names for the FILE Database ............................ 9-10
  255.          Field Names for the RJE Database ............................. 9-11
  256.          Field Names for the UTILIZ Database .......................... 9-12
  257.          Syntax and Construction of an MBBSEXEC program ............... 9-13
  258.          The Assignment Statement ..................................... 9-15
  259.          Comparison Statements (IF) ................................... 9-16
  260.          Branch Statements (GOTO) ..................................... 9-17
  261.          Date Fields are Special Cases ................................ 9-19
  262.          Mathematics .................................................. 9-20
  263.          Processing a Single User Instead of the Entire Database ...... 9-21
  264.          MBBSEXEC 'Simple' Summary .................................... 9-24
  265.          MBBSEXEC Advanced Features ................................... 9-28
  266.          MBBSEXEC Advanced Features - the EXIT statement .............. 9-29
  267.          MBBSEXEC Advanced Features -  Special Fields in USER  database 9-30
  268.          MBBSEXEC Advanced Features - #LOG_FILE: ...................... 9-31
  269.          MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters 9-32
  270.          MBBSEXEC Advanced Features - Strings, Binary & Console Output  9-36
  271.          MBBSEXEC Advanced Features - the INPUT() statement ........... 9-38
  272.          MBBSEXEC Advanced Features - the WHILE() statement ........... 9-39
  273.          MBBSEXEC Advanced Features - The } ELSE { statement .......... 9-40
  274.          MBBSEXEC Advanced Features - Indirect Addressing (Indexing) .. 9-42
  275.          MBBSEXEC Advanced Features - Equating names for @TALLY/@STRING 9-44
  276.          MBBSEXEC Advanced Features -Writing/calling your own functions 9-45
  277.          MBBSEXEC Advanced Features -Setting the NEXT record to Process 9-48
  278.          MBBSEXEC Advanced Features - Executing an External Program ... 9-49
  279.          MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data  9-50
  280.          MBBSEXEC Advanced Features - Sample .MEX Programs ............ 9-53
  281.  
  282.  
  283.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  284.  
  285.  
  286.  
  287.     Table of Contents                                                Page  3
  288.  
  289.  
  290.          MBBSEXEC -- Program Summary (All Sections) ................... 9-56
  291.  
  292.     Magnum Utility Programs ........................................... 10-1
  293.  
  294.     Supplied External and RJE Programs with Magnum BBS ................ 11-1
  295.  
  296.     The NotePad Facility .............................................. 12-1
  297.  
  298.     Setting up Additional Copies of Magnum on your LAN ................ 13-1
  299.          Remapping Directories for your Workstation ................... 13-3
  300.  
  301.     For Systems using 'Extended File' and/or 'Extended MsgBase' ....... 14-1
  302.  
  303.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL) ....................... 15-1
  304.  
  305.     Closing Remarks ................................................... 16-1
  306.  
  307.     Index .............................................................. I-1
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.                          This Page Intentionally Blank
  378.  
  379.  
  380.  
  381.     MAGNUM BBS (r) system for OS/2                                 Page  1-1
  382.     Getting Started
  383.  
  384.  
  385.     Rather than waste time with the standard commentary of copying files and
  386.     creating directories, we'll  assume you know  what you're doing  since a
  387.     working knowledge  of OS/2  and it's  directory structure  is needed.  A
  388.     semi-automated installation  program is  included which  will create the
  389.     subdirectories  you  specifiy  and  copy  the appropriate files to those
  390.     subdirectories.
  391.  
  392.                                  What You Need
  393.  
  394.     You'll  need  an  IBM  or  compatible  computer  capable of running OS/2
  395.     version 1.2 or above, or OS/2 version 2.0 or above.  Computers utilizing
  396.     the  Intel  8088,  8086  and  80186  microprocessors  are not capable of
  397.     running the OS/2 operating system.  Computers utilizing the Intel  80286
  398.     microprocessors  can  run  OS/2  version  1.x  but  not  2.x.  Computers
  399.     utilizing the Intel 80386 or 80486 microprocessor can run any version of
  400.     OS/2.   OS/2 runs  in proctected  mode on  computers utilizing the Intel
  401.     80286, 80386 or  80486 microprocessor.   You'll need approximately  5 Mb
  402.     RAM for the operating system plus  1 node, 500K RAM for each  additional
  403.     node (these estimates are purposely high, you will probably need  less).
  404.     You will  also need  a modem  for each  node (your  modem and cable must
  405.     support  CTS  and  RTS  hardware  handshaking,  and  must  be capable of
  406.     responding to  the DTR  signal).   You will  also need  a text editor to
  407.     configure Magnum's STARTUP files.  The sample startup files included are
  408.     located on the distribution diskette in the directory  A:\MAGNUM\PGM_DIR
  409.     and employ  startup strings  we've used  on our  BBS with  the MultiTech
  410.     224Eh, US  Robotics HST  Dual Standard)  and Hayes  V.42 (V-Series) 9600
  411.     baud  modems.    OS/2  version  1.2  is  the  minimum  operating  system
  412.     requirement for OS/2,  however, we recommend  using OS/2 version  1.3 or
  413.     OS/2 version 2.0.  It doesn't matter if you're running Standard  Edition
  414.     or Extended Edition edition (OS/2 1.x) or Extended Services (OS/2 2.x).
  415.  
  416.     NOTES
  417.  
  418.     The version you  have of MAGNUM  BBS is a  multi-node version (even  the
  419.     2-node version (1 dialup) is multi-node  in that a remote user plus  the
  420.     sysop at the console can be online simultaneously).  It can run with one
  421.     or more nodes.  IBM PS/2's can address COM1 thru COM3 with OS/2 1.x,  or
  422.     COM1 thru COM4 with OS/2 2.x. Non-PS/2's can only address COM1 and COM2.
  423.  
  424.     If you're using a version of Magnum that supports more serial ports than
  425.     the  operating  system,  you   will  need  IBM's  Artic   communications
  426.     coprocessor  card  and  Quadron  Service  Corp's OS/2 comm device driver
  427.     software (QCOM) to access the comports beyond COM2 (non-PS/2) or COM3 or
  428.     COM4 (PS/2).  Digiboard also supplies a communications coprocessor  card
  429.     and OS/2 device driver software.  Both the Artic and Digiboard cards are
  430.     available for AT and MicroChannel machines.
  431.  
  432.     The version number on your Magnum distribution diskette reveals how many
  433.     nodes you have.   If your  version number is  6.00C5, the 5  after the C
  434.     means you have 5 nodes, node 5 being your local (console) node, and  all
  435.     node numbers lower than 5 (1-4) can be used as dialup nodes.
  436.  
  437.  
  438.  
  439.  
  440.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  441.  
  442.  
  443.  
  444.     Page  1-2                                 MAGNUM BBS (r) system for OS/2
  445.                       Optional add-on modules available from Gilmore Systems
  446.  
  447.  
  448.  
  449.                    Additional Incoming DIAL-UP Lines via LAN
  450.  
  451.     The  version  you  have  is  "LAN  ready".   You can purchase and set up
  452.     additional  copies  of  Magnum  BBS  to  be run on other workstations to
  453.     provide dial-up (modem)  support and share  the databases with  the main
  454.     BBS  (server).    Installing  the  same  copy  of  Magnum  BBS  at other
  455.     workstations will not work (each workstation requires its own serialized
  456.     copy of Magnum BBS software).   If you're installing more than one  copy
  457.     of Magnum BBS for your network, make sure your PROGRAM DIRectory, SYSOUT
  458.     DIRectory, and WORK  DIRectories (described later  in this chapter)  are
  459.     unique  for  each  workstation.    Contact  Gilmore  Systems for pricing
  460.     information relating to additional workstations.
  461.  
  462.         Additional Incoming LOCAL (modemless) Lines via LAN Pipe Modules
  463.  
  464.     The version you have is "LAN ready".  With the purchase of our  optional
  465.     Pipe  Modules,  you  can  log  onto  Magnum  BBS  from  OS/2  or  DOS  5
  466.     workstations.  IBM's LAN Server, Microsof'ts LAN Manager, Banyan  Vines,
  467.     or any other  LAN software supporting  "named pipes" will  work with our
  468.     pipe modules.  With  our pipe modules, any  node(s) on your current  BBS
  469.     can be set up as a "pipe"  node instead of a "modem" node to  allow pipe
  470.     access.  Those logging  on via "pipe", are  treated as any remote  modem
  471.     caller, thus system security is maintained.
  472.  
  473.                         Extended File and Message Bases
  474.  
  475.     Magnum BBS is supplied with the main MessageBase and FileBase (MsgBase 0
  476.     and FileBase 0) built in.  Each FileBase has 26 file 'areas' (A-Z),  and
  477.     each MsgBase has 26 message conference 'areas' (A-Z).  We offer both  an
  478.     'Extended MessageBase' and an  'Extended FileBase' module which  extends
  479.     Magnum's capabilities.  The 'Extended FileBase' module, extends Magnum's
  480.     FileBase capabilities from 1 FileBase of 26 areas to up to 256 FileBases
  481.     of 26  areas each  for a  total of  6,656 file  'areas'.   The 'Extended
  482.     MessageBase' module,  extends Magnum's  MessageBase capabilities  from 1
  483.     MessageBase of 26 message conference areas  to up to 256 MsgBases of  26
  484.     areas each for a total of 6,656 message conference 'areas'.
  485.  
  486.                                 CallBack Module
  487.  
  488.     For the ultimate  in security, our  optional CallBack module  will allow
  489.     Magnum to 'call back'  your users after they  log onto your system.   It
  490.     can  be  set  up  to  provide  'mandatory'  or 'courtesy' callback on an
  491.     individual basis (only those users you specify in a 'callback list' will
  492.     be considered for CallBack).  Although CallBack will work fine on a node
  493.     which  is  used  for  incoming  calls,  we  strongly recommend dedicated
  494.     CallBack node(s)  depending on  how much  the callback  facility will be
  495.     used.   In the  event that  all CallBack  nodes are  busy (in  use), the
  496.     CallBack module will queue up to 100 callers at a time for CallBack.
  497.  
  498.     Contact Gilmore Systems for pricing information on optional modules.
  499.  
  500.  
  501.  
  502.  
  503.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  504.  
  505.  
  506.  
  507.     MAGNUM BBS (r) system for OS/2                                 Page  1-3
  508.     Configuring MAGNUM ==> start here <==
  509.  
  510.  
  511.  
  512.     This document is  a guide to  help new Sysops  through the confusion  of
  513.     setting up a new BBS.
  514.  
  515.     Since experience has shown that all new BBS sysops want to start running
  516.     their new BBS program *yesterday*, we'll get right down to the  business
  517.     of system setup.
  518.  
  519.     Your hardware should  enable you to  run OS/2 version  1.2 or above,  or
  520.     OS/2 2.0 or above.  A safe memory requirement is 4-5 Mb just for the OS,
  521.     1 Mb for the parent process and 500K for each node you wish to run.   If
  522.     you de-activate the DOS compatibility box (OS/2 1.x), you will have more
  523.     free RAM.  If you de-activate the print spooler you will also have  more
  524.     RAM.  If you run MAGNUM as a fullscreen text app, you will have more RAM
  525.     - if you run it as a windowed text app, you'll have a little  less RAM.
  526.  
  527.     Firstly, you will need to tell MAGNUM how you want your directories  set
  528.     up, which directories are for what, etc.
  529.  
  530.           -------------------------------------------------------------
  531.     NOTE: There are 7 Magnum versions: 2-node, 3-node, 4-node, 5-node,
  532.           9-node, 13-node and 17-node (number of dialups = nodes-1).
  533.           This manual assumes you are using the 4-node version (the most
  534.           popular).
  535.           The highest node number (2 for 2-node, 4 for 4-node, etc),
  536.           is the LOCAL (console) node.
  537.       ->  Since this document assumes 4-node version, ANY reference in <-
  538.       ->  this document to node 4 should be replaced with your high    <-
  539.       ->  node (2, 4, 9, for example).                                 <-
  540.           -------------------------------------------------------------
  541.  
  542.     Just like  writing a  program or  a letter,  you need  a text  editor to
  543.     modify or create your configuration source files.  You can have up to  4
  544.     configuration text files with MAGNUM with a filename format of STARTUP.X
  545.     where  X  is  the  node  you  are  defining.    In other words, the file
  546.     STARTUP.1 defines  the node1  configuration, STARTUP.2  for node2,  etc.
  547.     STARTUP.4 (assume 4-node version) is not really a dial-in node, but  the
  548.     definition for the local (console)  or virtual comport.  The  DEVICENAME
  549.     for all STARTUP.x  files except STARTUP.4  (local node) specifies  which
  550.     device is to  be used for  that node (ie:   COM1, COM2,  etc).  Once you
  551.     have  modified  the  startup  file(s)  to  your liking, you will need to
  552.     "compile"  these  configuration  files  with  MAGNUM's  BBS  compiler  -
  553.     MAKEMBBS.EXE but that will be at  a later point.  In the  meantime, lets
  554.     discuss the configuration text file itself.
  555.  
  556.     You may begin by  copying the STARTUP.x files  onto your hard disk  from
  557.     the sample ones supplied on the distribution diskette.  These files  are
  558.     located on  diskette in  the directory  A:\MAGNUM\PGM_DIR and,  assuming
  559.     you're currently in a  directory on your hard  disk (and that your  hard
  560.     disk is the default drive), you can copy these files with the  following
  561.     command:
  562.  
  563.          COPY  A:\MAGNUM\PGM_DIR\STARTUP.*
  564.  
  565.  
  566.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  567.  
  568.  
  569.  
  570.     Page  1-4                                 MAGNUM BBS (r) system for OS/2
  571.                                                           Configuring MAGNUM
  572.  
  573.  
  574.  
  575.     You'll also need to copy the following files for now:
  576.  
  577.          COPY  A:\MAGNUM\PGM_DIR\MAKEMBBS.EXE
  578.          COPY  A:\MAGNUM\PGM_DIR\MINSTALL.EXE
  579.  
  580.     For simplicity's sake, lets assume you  will set up your BBS with  Node1
  581.     for  starters.    You  will  need  to  get  the file STARTUP.1 into your
  582.     favorite text editor and begin modifying it.  The actual STARTUP.1  file
  583.     you have  is a  copy of  the STARTUP.1  file being  used at  the Gilmore
  584.     System's BBS.  If you have a serial port on your system that you do  NOT
  585.     wish to use for the BBS, then don't create a STARTUP file for it!
  586.  
  587.     IMPORTANT: > Although more detail about your remote callers can be
  588.                  ascertained by setting your modem up to return Numeric
  589.                  result codes, it can be a time-consuming process to set up.
  590.                  For a speedy set up, where you needn't worry about result
  591.                  codes, have your modem return Verbose (word) results.
  592.                  Numeric result codes are returned when V0 appears anywhere
  593.                  in your modem init strings; Verbose (word) results are
  594.                  returned when V1 appears anywhere in your modem init
  595.                  strings. Some modems have a dip switch which may also need
  596.                  to be changed to match the type of result code (Numeric or
  597.                  Verbose) you wish.
  598.                > Make sure your modem responds to the DTR signal generated
  599.                  by the computer. Do NOT have the modem force the DTR signal
  600.                  high!
  601.                > Make sure your modem is set to pass Xon/Xoff characters
  602.                  thru as data - Magnum will perform Xon/Xoff processing as
  603.                  needed.
  604.  
  605.     Starting at the top  of the file (STARTUP.1)  and working our way  down,
  606.     lets go through each of the parameters.  All configuration commands  are
  607.     in the format of:
  608.  
  609.        KEYWORD:  PARM  ; Comment
  610.  
  611.     Simply, KEYWORD:  is the name of the field you are defining, PARM is the
  612.     value of the  field, and the  ; character starts  a comment.   A comment
  613.     starting with  the ;  character remains  a comment  for the remainder of
  614.     that text line.
  615.  
  616.     In order, here are the keywords and what they mean:
  617.  
  618.     ACTIVE - this keyword tells MAGNUM whether or not you want this node to
  619.              be active. The acceptable parms are Y or N. If Y, then this
  620.              node will become active when MAGNUM starts up. If N, MAGNUM
  621.              will ignore this node and you are free to use the node for any
  622.              other program such as a communications program (MagCom or
  623.              Logicomm for example).
  624.  
  625.     MBBS_VERSION - this keyword will be used internally. You should leave
  626.                    this blank or accept the value already supplied. It will
  627.  
  628.  
  629.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  630.  
  631.  
  632.  
  633.     MAGNUM BBS (r) system for OS/2                                 Page  1-5
  634.     Configuring MAGNUM
  635.  
  636.  
  637.                    be automatically supplied when you "compile" the
  638.                    configuration.
  639.  
  640.     PARENT_SERNUM - this keyword expects a serial number for its parameter.
  641.                     If you're running a Magnum system on one machine and
  642.                     with no LAN (or LOCALBBS.EXE modules), then simply
  643.                     provide the serial number of your BBS system to this
  644.                     parm. However, in preparation for a higher degree of
  645.                     network support, this parameter must be the serial
  646.                     number of your MAIN BBS system ...if you're running
  647.                     more than one Magnum system (MBBS.EXE) on two or more
  648.                     different machines networked together, then supply the
  649.                     MAIN serial# as this parameter for EACH STARTUP.x files
  650.                     on all machines. This also applies to all STARTUP.x
  651.                     files for the local logon modules (LOCALBBS.EXE) running
  652.                     on your network. Once you decide which serial# is to be
  653.                     considered your MAIN system, NEVER CHANGE THIS PARM!!
  654.                     Encryption of passowrds and messages is based on this
  655.                     serial number, so all systems accessing your databases
  656.                     must share the same PARENT_SERNUM.
  657.  
  658.     ENCRYPT_MAIL - this keyword expects a parameter of Y or N (for 'yes' or
  659.                    'no', respectively). If Y, then all messages entered on
  660.                    Magnum will be stored on disk in encrypted form. Magnum
  661.                    will automatically present the messages in readable form
  662.                    when being read by an authorized user. Because of the
  663.                    read/write access to subdirectories on networks
  664.                    containing Magnum messages (mail), encryption became
  665.                    necessary in order to preserve overall system security
  666.                    (ie: so that user's won't be able to write programs to
  667.                    access the messages). Once you choose to activate message
  668.                    encryption, messages will be encrypted from that point on
  669.                    (or until you de-activate it). Messages entered without
  670.                    encryption (including all previous versions of Magnum)
  671.                    will remain unencrypted. If you use encryption for a
  672.                    while, then decide to change back to the non-encrypted
  673.                    fashion, the encrypted messages will remain encrypted
  674.                    (but will be transparent to you and your users).
  675.  
  676.     GEO_PRIVACY - this keyword expects a parameter of Y or N (for 'yes' or
  677.                   'no', respectively). If Y, then Magnum will enforce
  678.                   Geographic Privacy by not allowing the user's geographic
  679.                   information to be displayed when:
  680.                       1) Logging On (the "From City, State ? (Y/N) => "
  681.                          prompt supressed).
  682.                       2) Will supress geographic information from main
  683.                          menu's "[U]ser Search".
  684.  
  685.     INACTIVITY_TIMER - this keyword expects a number in the range of 180 to
  686.                        1800. This number will indicate the amount of time
  687.                        (in seconds) in which the system will automatically
  688.                        force a remote user off of the system due to
  689.                        inactivity. Prior to this version, 240 was
  690.  
  691.  
  692.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  693.  
  694.  
  695.  
  696.     Page  1-6                                 MAGNUM BBS (r) system for OS/2
  697.                                                           Configuring MAGNUM
  698.  
  699.  
  700.                        hard-coded (4 minutes). Whatever number you choose,
  701.                        the system will issue a warning message to the remote
  702.                        user 60 seconds prior to the automatic logoff.
  703.                   NOTES: - For best results, supply a parameter which is a
  704.                            multiple of 60.
  705.                          - The inactivity timer applies once a user has
  706.                            actually logged onto the system. If the user has
  707.                            not responded the "Login" prompt within 3
  708.                            minutes, the system will terminate the session.
  709.                            A user is considered to be logged on if one of
  710.                            the following is true:
  711.                            - The user is an existing user (in user database)
  712.                              and has properly entered their password.
  713.                            - The user is a NEW user (not in user database)
  714.                              and has completed the new user initial
  715.                              questions, at which time the "ID /xxx
  716.                              successfully added to user database" message
  717.                              appears.
  718.  
  719.     TRACK_UTILIZATION - this keyword expects a parameter of Y or N (for Yes
  720.                         or No, respectively). If the parameter is Y,
  721.                         utilization tracking for that node of your BBS will
  722.                         be stored in a utilization database file UTILIZ.DAT
  723.                         in the SESSION DIRectory associated with that node.
  724.                         Supply Y to the TRACK_UTILIZATION: keyword in all
  725.                         STARTUP.x files who's nodes you want tracked.
  726.                         Utilization tracking is stored as one record for
  727.                         each session (logon) that takes place for any node
  728.                         who's TRACK_UTILIZATION: parm is set to Y.
  729.  
  730.     MBBS_MODEM - this is where you supply a short (up to 25 characters)
  731.                  description of your modem.
  732.  
  733.     MBBS_COUNTRY - this is where you supply the name of your country (up to
  734.                    20 characters). When new users log onto your system, this
  735.                    will be displayed to them as the default country when
  736.                    they are asked for their address information.
  737.  
  738.     DATEFORMAT - Supply a U for United States, or an E for European date
  739.                  formats. This is for reporting purposes - the date format
  740.                  your users choose is independent of this field.
  741.  
  742.     SERVERNAME - Optional. If you're using a LAN, supply the server name in
  743.                  this field, otherwise leave the field blank or don't supply
  744.                  the SERVERNAME: keyword at all. Although this field exists,
  745.                  it is not used by Magnum at this time.
  746.  
  747.     PRTY_CLASS - Optional. Allows you to change the priority class of a
  748.                  Magnum session. PRTY_CLASS can range from 0 to 4. 0 is
  749.                  generally not used since it indicates no change. 1 is the
  750.                  "Idle Time" class which is not recommended for BBS
  751.                  operation. 2 is the "Regular" class (the default for remote
  752.                  callers). 3 is "Time Critical" which can seriously slow
  753.  
  754.  
  755.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  756.  
  757.  
  758.  
  759.     MAGNUM BBS (r) system for OS/2                                 Page  1-7
  760.     Configuring MAGNUM
  761.  
  762.  
  763.                  down all other sessions. 4 is the "Foreground" class.
  764.                  Unless you're familiar with multi-tasking time classes and
  765.                  priorities, we suggest you not supply this keyword or any
  766.                  parameters. The default will be class 2 for remote
  767.                  sessions, class 1 for console sessions.
  768.                  NOTE: This keyword is intended for system administrators
  769.                        fine-tuning Magnum when used with the optional
  770.                        Pipe Modules.
  771.  
  772.     PRTY_LEVEL - Optional. Allows you to change the priority level within a
  773.                  class. PRTY_LEVEL can range from 0 to 31. 0 is the lowest
  774.                  level of a time class, while 31 is the highest level. The
  775.                  lower the number, the lower the amount of time OS/2
  776.                  allocates to the program. Unless you're familiar with
  777.                  multi-tasking time classes and priority levels, we suggest
  778.                  you not supply this keyword or any parameters. The default
  779.                  will be level 0 for remote sessions, level 31 for console
  780.                  sessions.
  781.                  NOTE: This keyword is intended for system administrators
  782.                        fine-tuning Magnum when used with the optional
  783.                        Pipe Modules.
  784.  
  785.     YMODEMG - Accepts a parameter of Y or N. If Y, Magnum will allow all
  786.               users to be able to use the Ymodem-G protocol. If N, Magnum
  787.               will only allow those with Error-Correcting modems (ie: MNP4,
  788.               V.42, LAP, etc) to use Ymodem-G. Ymodem-G is a file transfer
  789.               protocol that relies on an error-correcting modem to perform
  790.               any error corrections. The nature of the protocol is to abort
  791.               if the modem does not correct an error. If your modem is set
  792.               up to return Numeric result codes, Magnum can ascertain
  793.               whether the remote caller is using an error-correcting modem.
  794.  
  795.               On the other hand, the easiest way to configure Magnum is
  796.               to have your modem return Verbose (word) result codes, and
  797.               supply Y as the YMODEMG parameter. This way, you can omit
  798.               the RC_xxxxx and ERC_xxxxx keywords described later on in this
  799.               section. Most other BBS's are set up this way, however, Magnum
  800.               does give you the choice for allowing more detail.
  801.  
  802.     CMDIO - Optional. Value can range from 0 to 255. Refer to the definition
  803.             of CHILDREN.BBS in chapter 2 and how to set the @N0 value for
  804.             instructions on how to determine what the value should be. This
  805.             value will be used to set how I/O is performed when CMD.EXE is
  806.             run as a child of Magnum via the "[O]perating System/2"
  807.             selection of the Sysop menu. If you leave out the CMDIO keyword,
  808.             the default will be 5.
  809.  
  810.     VERBOSE_CONNECT - Optional. If you plan on using Verbose (word) result
  811.                       codes (V1 appears somewhere in one of your modem init
  812.                       init strings, and any related dip switches are set to
  813.                       insure verbose (word) results on your modem). Most
  814.                       modems return "CONNECT xxxxx" when a connection is
  815.                       made. Some modems, however, return "CARRIER xxxxx" for
  816.  
  817.  
  818.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  819.  
  820.  
  821.  
  822.     Page  1-8                                 MAGNUM BBS (r) system for OS/2
  823.                                                           Configuring MAGNUM
  824.  
  825.  
  826.                       the baud rate of the connection (such as the Hayes
  827.                       V-series and Ultra, for example). Depending on which
  828.                       one your modem returns for baud rate connection,
  829.                       you'll need to supply one of the following:
  830.  
  831.                              VERBOSE_CONNECT: CARRIER
  832.  
  833.                          or
  834.  
  835.                              VERBOSE_CONNECT: CONNECT
  836.  
  837.                       If you omit this field, Magnum will take whichever the
  838.                       modem returns first (CARRIER or CONNECT) which may not
  839.                       reflect an accurate baudrate. For example, Hayes
  840.                       V-Series & Ultra return CONNECT xxxxx (where xxxxx is
  841.                       the DTE baudrate, the speed of Your computer to Your
  842.                       modem), and returns CARRIER xxxxx (where xxxxx is the
  843.                       DCE baudrate, the speed of Your modem to the Remote
  844.                       modem).
  845.  
  846.     ANNOUNCE_ONLY - the acceptable parms are Y or N. If Y, MAGNUM will treat
  847.                     this node as an announce-only node. If N, MAGNUM will
  848.                     treat this node as a regular BBS node. If announce only,
  849.                     it will answer the phone, display a file you create and
  850.                     hang up (See ANNOUNCE.x in chapter 2).
  851.  
  852.     NODE    - although the extension of the filename (STARTUP.1 for example)
  853.               indicates which node you are configuring, this parameter is
  854.               mandatory and acts as a double check. (Note: In previous
  855.               versions this used to be the COMPORT parm - please note the
  856.               change). IMPORTANT: You must also have unique WORK DIRectories
  857.               for each STARTUP.x file (described later on for keyword
  858.               WORK_DIR).
  859.  
  860.     DEVICENAME - This parameter is the name of the device you'll be using
  861.                  for the serial port of this node. Device names are usually
  862.                  COM1, COM2, etc but can be any other supported device
  863.                  (ie: the Octoport card uses device names of AUX0, AUX1,
  864.                  etc). This field accepts up to 30 characters.
  865.                  If you're running under a LAN (ie: Lan Server or Lan
  866.                  Manager for example, you can supply the name of a
  867.                  redirected serial port.
  868.  
  869.     BAUDRATE - This parameter can range from 110 to 19200. The acceptable
  870.                values are: 110, 150, 300, 600, 1200, 2400, 4800, 9600 and
  871.                19200. This does not necessarily mean the modem's baud rate,
  872.                but the speed with which the computer talks to your modem.
  873.                Some modems such as the USRobotics HST Couriers and the
  874.                Multitech to name a few, can communicate with the DTE
  875.                (computer) at a much higher baud rate than the actual baud
  876.                rate of the modem over the phone lines.
  877.  
  878.                NOTE: As of this writing, the COM0x.SYS device driver
  879.  
  880.  
  881.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  882.  
  883.  
  884.  
  885.     MAGNUM BBS (r) system for OS/2                                 Page  1-9
  886.     Configuring MAGNUM
  887.  
  888.  
  889.                      supplied with OS/2 only supports a maximum of 19200.
  890.                      If you're using a 3rd-party communications coprocessor
  891.                      such as IBM's Artic Card in conjunction with Quadron
  892.                      Service Corp's QCOM device driver, or if you're using
  893.                      the Digiboard communications coprocessor in conjunction
  894.                      with their OS/2 COM device driver software, you can
  895.                      supply a value of 38400 baud in this field.
  896.  
  897.     PARITY - for normal BBS communications, parity should be set to N
  898.              (none). Other choices are E (even), O (odd), M (mark), S
  899.              (space).
  900.  
  901.     DATABITS - for normal BBS communications, databits should be 8. Other
  902.                choices are 7, 6 and 5.
  903.  
  904.     STOPBITS - for normal BBS communications, stopbits should be 1. Other
  905.                choices are 1.5 and 2.
  906.  
  907.     WAITCARRIER - for normal communications, this should be 30, although
  908.                   the acceptable range is 1 to 255. This is the number of
  909.                   seconds Magnum waits for a result code from the modem
  910.                   once it's answered the phone. If no response within the
  911.                   time limit, it hangs up the phone and resets the modem
  912.                   for the next caller. NOTE: If your modem uses the "AT"
  913.                   command set, register S7 should match this parm.
  914.  
  915.     MODEMRESET - This is usually "AT Z" (without quotes). This is the string
  916.                  your modem requires for a reset. IMPORTANT: Some modems are
  917.                  configurable as to wheter to reset from factory settings or
  918.                  NRAM. Set your modem to reset from NRAM. If your modem is
  919.                  not configurable and resets from factory settings, simply
  920.                  supply "AT" (without the quotes). If you're not sure, or
  921.                  things aren't resetting right, supply "AT" (without the
  922.                  quotes).
  923.  
  924.     STARTUP1 - This is the initialization string for your modem. There are
  925.                3 initialization strings. Every modem is different, and even
  926.                identical modems can have different startup strings. If you
  927.                are following our example STARTUP.X files, our STARTUP.1 file
  928.                is for a MultiTech 224E modem, while our STARTUP.2 file is
  929.                for a US Robotics Dual Standard modem (the older, v.32 but
  930.                not v.32 bis modem), and our STARTUP.3 file is for a
  931.                Hayes V.42 9600 baud modem. There are 3 such strings to
  932.                accomodate the lengths. Be careful, some modems may only
  933.                accept up to 40 characters per string.
  934.  
  935.            ->  NOTE 1: In any of these strings, ensure V1 appears if you
  936.                        plan on using Verbose (word) results. Otherwise,
  937.                        ensure that V0 appears if you plan on using Numeric
  938.                        result codes. Also make sure that if your modem has
  939.                        any dip swithces, that you set them to correlate
  940.                        with V1 (word) or V0 (numeric) depending on choice.
  941.  
  942.  
  943.  
  944.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  945.  
  946.  
  947.  
  948.     Page  1-10                                MAGNUM BBS (r) system for OS/2
  949.                                                           Configuring MAGNUM
  950.  
  951.  
  952.             -> NOTE 2: For the fastest possible setup with minimal time
  953.                        spent in your modem's user manual (especially if
  954.                        all this is new to you) follow these steps:
  955.  
  956.                               a) Use Verbose result codes (V1 in any of
  957.                                  your STARTUP strings).
  958.  
  959.                               b) Supply Y to the YMODEMG parm described
  960.                                  earlier.
  961.  
  962.                               c) Delete all keywords starting with RC_nnnnn,
  963.                                  ERC_nnnnn, ERCA_nnnnn, and ERCB_nnnnn. The
  964.                                  n's merely represent digits. These
  965.                                  keywords are described later in this
  966.                                  chapter, and appear later on in your
  967.                                  STARTUP.x file.
  968.  
  969.  
  970.     STARTUP2 - see STARTUP1
  971.     STARTUP3 - see STARTUP1 (this string usually ends with &W)
  972.  
  973.     REINIT - this is the command your modem needs to reinitialize itself
  974.              after every caller. This is usually ATZ.
  975.  
  976.              NOTE: ATZ is interpreted differently on some modems than
  977.                    others. To some modems, it means to reinitialize from
  978.                    nonvolatile ram (NRAM or NVRAM), to others it means
  979.                    to reset completely (factory settings). If you're not
  980.                    sure, set this field to just AT and nothing else (don't
  981.                    append the Z).
  982.  
  983.     DELAY1 - this is the delay (in miliseconds) of how long MAGNUM should
  984.              wait after sending your STARTUP1 string before it should send
  985.              the STARTUP2 string to your modem. This will vary with your
  986.              CPU speed, modem, the speed with which your computer converses
  987.              with your modem, and how fast your modem can process the
  988.              string.
  989.  
  990.     DELAY2 - (see DELAY1) Specifies (in miliseconds) how long MAGNUM should
  991.              wait after sending your STARTUP2 string before it should send
  992.              the STARTUP3 string to your modem.
  993.  
  994.     DELAY3 - (see DELAY1) Specifies (in miliseconds) how long MAGNUM should
  995.              wait after sending your STARTUP3 string before continuing.
  996.  
  997.     DTELOCKED - as mentioned earlier, some modems can communicate with the
  998.                 DTE (computer) at a much higher baudrate than they can over
  999.                 the phone lines. For these modems, especially those with MNP
  1000.                 (Microcom Network Protocol), you can increase efficiency
  1001.                 (throughput) by locking the DTE. Answer Y to lock the DTE,
  1002.                 or N not to. If N, the DTE speed will match that of the
  1003.                 incoming callers baudrate.
  1004.  
  1005.  
  1006.  
  1007.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1008.  
  1009.  
  1010.  
  1011.     MAGNUM BBS (r) system for OS/2                                Page  1-11
  1012.     Configuring MAGNUM
  1013.  
  1014.  
  1015.               -> NOTE: If you're using a modem such as the US Robotics
  1016.                        Dual Standard, the Intel V.32, Hayes Ultra, or
  1017.                        just about any modem capable of v.32 (9600 baud)
  1018.                        communications, supply 19200 for the BAUDRATE parm
  1019.                        above, and Y to the DTELOCKED parm. If you'r using
  1020.                        a coprocessor card such as Artic or Digiboard,
  1021.                        supply 38400 baud to the BAUDRATE parm. See the
  1022.                        BAUDRATE parm described earlier in this chapter.
  1023.  
  1024.     ANSWERTYPE - Accepts a value of A or R. MAGNUM can be configured to
  1025.                  answer the phone, or it can let your modem answer the
  1026.                  phone. If you select A for auto-answer, your modem will
  1027.                  answer the phone and MAGNUM will respond once a
  1028.                  connection is established because the modem will send
  1029.                  MAGNUM a result code. If you select R for ring-detect,
  1030.                  MAGNUM will issue the command to the modem to answer the
  1031.                  phone.
  1032.  
  1033.              ->  NOTE: For modems with the AT command set (Hayes, etc),
  1034.                        you must have "S0=1" (without quotes) as part of
  1035.                        your STARTUPx strings if you choose auto-answer,
  1036.                        otherwise you must have "AT S0=0" (without quotes)
  1037.                        as part of your STARTUPx strings if you choose
  1038.                        ring-detect. RING-DETECT IS THE PREFERRED CHOICE!
  1039.  
  1040.     OPENMODE - Accepts a value of S or N. MAGNUM can open the communications
  1041.                ports as shared or nonshared. MAGNUM will work fine either
  1042.                way, however we strongly recommend that in a multitasking
  1043.                operating system such as OS/2, you choose N (nonshared).
  1044.                Choosing N guarantees that no other program will open the
  1045.                comport and ruin a session in progress. Choosing S will
  1046.                cause MAGNUM to open the port as shared, meaning any other
  1047.                program can also open that same comport.
  1048.  
  1049.     ANSWERCMD - Modem answer command string. For AT command sets (Hayes &
  1050.                 compatible), the command is ATA.
  1051.  
  1052.     ONHOOK - Modem command to go onhook (hang up). AT command sets: AT H0
  1053.  
  1054.     OFFHOOK - Modem command to go offhook (pick up the phone but don't
  1055.               answer it) - AT command sets: AT H1
  1056.               NOTE: If you wish to turn off the speaker at this point,
  1057.                     supply AT H1M0
  1058.  
  1059.     ESC_CMDMODE - the command string which places the modem in command mode.
  1060.                   AT command sets: +++
  1061.  
  1062.     ESC_GRDTIME - Guard time (in miliseconds) for the modem to recognize the
  1063.                   string for ESC_CMDMODE and place the modem in command
  1064.                   mode.
  1065.  
  1066.     GO_ONLINE - the command string which causes the modem to go back online
  1067.                 from a ESC_CMDMODE escape. AT command sets: AT O
  1068.  
  1069.  
  1070.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1071.  
  1072.  
  1073.  
  1074.     Page  1-12                                MAGNUM BBS (r) system for OS/2
  1075.                                                           Configuring MAGNUM
  1076.  
  1077.  
  1078.  
  1079.     END_OFFHOOK - acceptable parms are Y or N. If Y (yes), the modem will
  1080.                   place the phone offhook when you decide to end the MAGNUM
  1081.                   BBS program (the modem must remain on in order for this
  1082.                   to work) by sending the commands you specified in the
  1083.                   OFFHOOK parameter described earlier.
  1084.                   If N (no), any remote callers will not get an answer -
  1085.                   the phone will continue to ring until the remote caller's
  1086.                   modem hangs up.
  1087.  
  1088.     --- IF you're using the "fast" setup (Verbose result codes, Y to the
  1089.         YMODEMG keyword, and supplied the VERBOSE_CONNECT parameter), then
  1090.         follow these steps:
  1091.  
  1092.            a) Supply N to the ERRORCHECK keyword (ie:   ERRORCHECK: N)
  1093.  
  1094.            b) Delete (deletion is optional) all keywords starting with
  1095.               RC_ or ERC_ or ERCA_ or ERCB_, and disregard the description
  1096.               of those keywords below.
  1097.  
  1098.     RC_110 - result code returned by the modem for a 110 baud connection
  1099.     RC_150 - result code returned by the modem for a 150 baud connection
  1100.     RC_300 - result code returned by the modem for a 300 baud connection
  1101.     RC_600 - result code returned by the modem for a 600 baud connection
  1102.     RC_1200 - result code returned by the modem for a 1200 baud connection
  1103.     RC_2400 - result code returned by the modem for a 2400 baud connection
  1104.     RC_4800 - result code returned by the modem for a 4800 baud connection
  1105.     RC_9600 - result code returned by the modem for a 9600 baud connection
  1106.     RC_12000 - result code returned by the modem for a 12000 baud connection
  1107.     RC_14400 - result code returned by the modem for a 14400 baud connection
  1108.     RC_19200 - result code returned by the modem for a 19200 baud connection
  1109.  
  1110.     ERRORCHECK - answer Y (yes) to indicate an error-correcting modem is
  1111.                  being used (ie: a modem with MNP,ARQ and/or LAP protocol),
  1112.                  otherwise answer N (no).
  1113.  
  1114.     ERC_110 - modem result code for error-correction connect at 110 baud
  1115.     ERC_150 - modem result code for error-correction connect at 150 baud
  1116.     ERC_300 - modem result code for error-correction connect at 300 baud
  1117.     ERC_600 - modem result code for error-correction connect at 600 baud
  1118.     ERC_1200 - modem result code for error-correction connect at 1200 baud
  1119.     ERC_2400 - modem result code for error-correction connect at 2400 baud
  1120.     ERC_4800 - modem result code for error-correction connect at 4800 baud
  1121.     ERC_9600 - modem result code for error-correction connect at 9600 baud
  1122.     ERC_12000 - modem result code for error-correction connect at 12000 baud
  1123.     ERC_14400 - modem result code for error-correction connect at 14400 baud
  1124.     ERC_19200 - modem result code for error-correction connect at 19200 baud
  1125.  
  1126.     ERCA_110   \     Some modems require additional error-correcting result
  1127.     .           \ __ codes (ie: a different one for MNP, one for LAP, etc).
  1128.     .           /    If your modem requires additional codes, they go here.
  1129.     ERCA_19200 /     Leave blank if not used by your modem.
  1130.  
  1131.  
  1132.  
  1133.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1134.  
  1135.  
  1136.  
  1137.     MAGNUM BBS (r) system for OS/2                                Page  1-13
  1138.     Configuring MAGNUM
  1139.  
  1140.  
  1141.     ERCB_110   \     Some modems require additional error-correcting result
  1142.     .           \ __ codes (ie: a different one for MNP, one for LAP, etc).
  1143.     .           /    If your modem requires additional codes, they go here.
  1144.     ERCB_19200 /     Leave blank if not used by your modem.
  1145.  
  1146.  
  1147.     - - - Directory Paths - - -
  1148.  
  1149.     Now we can go  into the BBS directory  paths.  Directory paths  are FULL
  1150.     paths including the drive letter.  For instance, E:\MAGNUM\PGM_DIR is  a
  1151.     valid pathname, while  MAGNUM\PGM_DIR is invalid  (no drive and  no root
  1152.     path).  Not every  path has to be  unique, although we recommend  it for
  1153.     maintenance sake, but technically you can use the same path in more than
  1154.     one  place.    Each  pathname  can  be  up  to  65  characters in length
  1155.     (including the drive letter).  You can optionally end your pathname with
  1156.     the \ character but it doesn't matter - if you don't, MAGNUM appends one
  1157.     internally anyway.
  1158.  
  1159.     PROGRAM_DIR - This defines the directory which holds the actual MAGNUM
  1160.                   BBS program(s). We use E:\MAGNUM\PGM_DIR
  1161.                   NOTE: The PROGRAM_DIR parm should be on the same logical
  1162.                         drive as the WORK_DIR parm (below).
  1163.  
  1164.     SESSION_DIR - This defines the directory which holds session data. We
  1165.                   use E:\MAGNUM\SES_DIR
  1166.  
  1167.     BULLETIN_DIR - This defines the directory which holds bulletins and
  1168.                    newsletters. We use E:\MAGNUM\BUL_DIR
  1169.  
  1170.     MENU_DIR - This defines the directory whcih holds any menus you create.
  1171.                We use E:\MAGNUM\MNU_DIR
  1172.  
  1173.     HELP_DIR - This defines the directory which holds the help files. We use
  1174.                E:\MAGNUM\HLP_DIR
  1175.  
  1176.     DISPLAY_DIR - This defines the directory which holds the display files.
  1177.                   We use E:\MAGNUM\DSP_DIR
  1178.  
  1179.     EXTERNAL_DIR - This defines the directory which holds external programs.
  1180.                    We use: E:\MAGNUM\EXT_DIR
  1181.  
  1182.     RJE_DIR - This defines the directory which holds RJE specific stuff.
  1183.               We use: E:\MAGNUM\RJE_DIR
  1184.  
  1185.     MSG_DIR - This defines the directory which is the parent to the message
  1186.               subdirectories. We use: E:\MAGNUM\MSG_DIR
  1187.  
  1188.     WORK_DIR - This defines MAGNUM's work directory. We use:
  1189.                   E:\MAGNUM\WORK_DIR\1   for node 1 (STARTUP.1),
  1190.                   E:\MAGNUM\WORK_DIR\2   for node 2 (STARTUP.2), etc.
  1191.                NOTES: - Each node should have its own, unique WORK_DIR
  1192.                       - The WORK_DIR should be on the same logical drive
  1193.                         as the PROGRAM_DIR
  1194.  
  1195.  
  1196.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1197.  
  1198.  
  1199.  
  1200.     Page  1-14                                MAGNUM BBS (r) system for OS/2
  1201.                                                           Configuring MAGNUM
  1202.  
  1203.  
  1204.  
  1205.     USERS_DIR - This defines the directory MAGNUM uses for logging answers
  1206.                 for user-generated questionairres, and user NotePads.
  1207.                 We use: E:\MAGNUM\USER_DIR
  1208.  
  1209.     SYSOUT_DIR - This defines the directory for system output (ie: Activity
  1210.                  logs, chat logs, user responses to questionnaires, etc).
  1211.  
  1212.     Now comes the file directories.  As with the other directories, you have
  1213.     up to 65 characters each, and must include a full path including  drive.
  1214.     You can have up to 26 file directories labeled A to Z. You should try to
  1215.     give  descriptive  names  to  the  directories.   The keywords for these
  1216.     entries are FILEDIR_A  thru FILEDIR_Z.   See the example  STARTUP.X file
  1217.     for the way we use them.
  1218.  
  1219.     After defining  the file  subdirectories above,  you now  need to define
  1220.     descriptions.    You  have  up  to  40  characters  each to describe the
  1221.     contents of  the directories.   You  can have  up to  26 file  directory
  1222.     descriptions.    The  keywords  for  these  entries  are  FILEDES_A thru
  1223.     FILEDES_Z.  See the example STARTUP.X file for the way we use them.
  1224.  
  1225.     You  can  have  up  to  26  message  areas  labeled  A  thru Z. Whatever
  1226.     subdirectory  you  supplied  for  the  MSG_DIR  parm,  the setup program
  1227.     (MINSTALL.EXE)  will   create  26   subdirectories  under   the  MSG_DIR
  1228.     directory.  (ie:   E:\MAGNUM\MSG_DIR\A ...  E:\MAGNUM\MSG_DIR\Z).   More
  1229.     on the MINSTALL.EXE program later  - for now, the completion  of editing
  1230.     the STARTUP.X files is crucial.
  1231.  
  1232.     Like  the  FILEDES_x  parm,  the  MSGDES_x  parm  is  similar.  You give
  1233.     descriptive headings  for each  of the  MSGDES_x parms  (up to  40 chars
  1234.     each).  See our STARTUP.x file(s) for examples of how we use them.
  1235.  
  1236.     Now comes the BBS Parameters:
  1237.  
  1238.     BBS_NAME - this is where you give your BBS a name (up to 40 characters).
  1239.  
  1240.     BBS_STARTED - this is where you tell MAGNUM what date you'd like MAGNUM
  1241.                   to show users as the starting date of the BBS.
  1242.  
  1243.     TTL_CALLS - this is where you tell MAGNUM how many calls your BBS has
  1244.                 taken at the time of this creation. Ordinarily this would be
  1245.                 0, but some sysops switching systems want to display how
  1246.                 many calls THEY'VE had - not this particular software.
  1247.  
  1248.     SYSOP_FIRST - the sysop's first name
  1249.  
  1250.     SYSOP_MIDDLE - the sysop's middle name or initial (LEAVE BLANK IF NONE)
  1251.  
  1252.     SYSOP_LAST - the sysop's last name
  1253.  
  1254.     PAGING_BEGIN - the sysop's beginning paging time (in seconds from
  1255.                    midnight). To calculate seconds from midnight (00:00),
  1256.                    take the desired time in military format (ie: HH:MM or
  1257.  
  1258.  
  1259.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1260.  
  1261.  
  1262.  
  1263.     MAGNUM BBS (r) system for OS/2                                Page  1-15
  1264.     Configuring MAGNUM
  1265.  
  1266.  
  1267.                    14:30 for example) and use the formula (HH * 3600) +
  1268.                    (MM * 60).
  1269.  
  1270.     PAGING_END - the sysop's ending paging time (in seconds from midnight).
  1271.                  See the description of PAGING_BEGIN to derive seconds from
  1272.                  midnight.
  1273.  
  1274.     OPEN_BOARD - Y=sysop is running an open board (anyone can call). N=sysop
  1275.                  is running a closed board - sysop must pre-enter the users
  1276.                  who are allowed access to the board. Pre-entering users in
  1277.                  a closed system is accomplished by setting up the local
  1278.                  node as an open system, and logging on from the console as
  1279.                  the new user.
  1280.  
  1281.     REUSE_DEL -  If you delete users, this option will let you assign a new
  1282.                  user to an old user's ID. Answer Y to re-use deleted ID's.
  1283.                  Answer N not to re-use deleted ID's. Bear in mind that
  1284.                  Magnum's user database is not packable, meaning that if you
  1285.                  have deleted users they will remain as deleted users
  1286.                  forever (or until you change this parameter to Y and
  1287.                  recompile the STARTUP.x file with the MAKEMBBS.EXE
  1288.                  program). If you'll be setting this field to Y (yes), users
  1289.                  will only be re-used if:
  1290.                      - They are deleted, and
  1291.                      - the REUSE field of the deleted record is Y, and
  1292.                      - the new (replacement) user has the same first letter
  1293.                        of their last name as the deleted user.
  1294.  
  1295.     NEWUSER_LVL - this parm tells MAGNUM what security level to assign to a
  1296.                   new user. This can range from 0 to 9999.
  1297.  
  1298.     CONFIRM_NEWRESP - Optional. Supply Y (yes) or N (no). The default is N.
  1299.                       If you supply N (no), Magnum will not confirm new user
  1300.                       user logon responses with "Is this correct (Y/N) => "
  1301.                       prompts when new users respond to the prompts of
  1302.                       address, city, state,  zip, country, telephone
  1303.                       numbers, etc. Instead, the new user will have a chance
  1304.                       to update their responses at the end of all of the new
  1305.                       user logon questions. We recommend the default of N.
  1306.                       This keyword  exists only for compatibility with
  1307.                       previous Magnum versions which confirmed every
  1308.                       response. The confirmation of every response however,
  1309.                       is frustrating and extraneous.
  1310.  
  1311.     GET_PHONE - Y=ask new users for their telephone numbers. N=don't ask.
  1312.  
  1313.     GET_DOB - Y=ask new users for their date of birth. N=don't ask.
  1314.  
  1315.     GET_COMPUTER - Y=ask new users for the computer brand. N=don't ask.
  1316.  
  1317.     GET_QUESTION - Y=force new users to fill out the new user's
  1318.                      questionairre. N=no questionairre.
  1319.  
  1320.  
  1321.  
  1322.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1323.  
  1324.  
  1325.  
  1326.     Page  1-16                                MAGNUM BBS (r) system for OS/2
  1327.                                                           Configuring MAGNUM
  1328.  
  1329.  
  1330.     GET_COMPANY  - Y=Prompt user for whether they have a company name and
  1331.                      collect the name of their company if they do.
  1332.                    N=Do not prompt for company and do not collect company
  1333.                      name information.
  1334.  
  1335.     GET_ADDRESS  - Y=Collect mailing address information from the user.
  1336.                    N=Do not collect mailing address information.
  1337.  
  1338.     GET_DATEFMT  - Y=Ask new user for date preference (US or European).
  1339.                    N=Use System Date Format for new user (obtained from
  1340.                      the DATEFORMAT keyword described earlier). The user
  1341.                      can change this later on through the [E]nvironment
  1342.                      section of the main menu.
  1343.  
  1344.     GET_INTERESTS - Y=Ask new user for their areas of interest (for
  1345.                       cross-reference capability).
  1346.                     N=Do not ask new user for areas of interest. The user
  1347.                       can change this later on through the [E]nvironment
  1348.                       section of the main menu.
  1349.  
  1350.     MILC_CHAR - Optional. The parm you supply for this keyword will override
  1351.                 the default MILC command character of '@'. MILC is the
  1352.                 embedded command language Magnum uses in your display files.
  1353.                 These embedded commands begin with a special character known
  1354.                 as the MILC_CHAR.
  1355.                 NOTE: characters with decimal values of 0 to 32 (hex 0 to
  1356.                       hex 20) will not be accepted. Alphanumeric characters
  1357.                       (A-Z, a-z, 0-9) and punctuation characters will NOT be
  1358.                       accepted: !,.?"':;()
  1359.                 CAUTION: If using someone else's MILC command file (from
  1360.                          another BBS), chances are very high that they're
  1361.                          using the @ character; you must be sure to change
  1362.                          this to the MILC command character you define for
  1363.                          your system. If you'll be overriding the MILC
  1364.                          command character, use extreme caution in
  1365.                          selecting a new character! Avoid the use of
  1366.                          characters which may appear within a normal message
  1367.                          (ie: %$#*[]{}\/<>+-&). Try to pick a not-so-common
  1368.                          character such as the ~ or ^ character.
  1369.  
  1370.     MORE_ADJUST - Optional. The "- More -" prompt appears after each
  1371.                   screenful of text if the user wishes it. A screenful of
  1372.                   text is defined by the user. For example, if the user
  1373.                   specifies 25 lines/screen, then Magnum will display 25
  1374.                   lines of text and the -More- prompt will appear on line
  1375.                   26 thus scrolling one line of previous text off of the
  1376.                   screen on a 25-line CRT. The value you supply here will
  1377.                   adjust for this. For example, if you supply -1, then the
  1378.                   user's lines/screen will effectively become (25-1) or 24.
  1379.                   This keyword is optional, and carries a default of 0 if
  1380.                   not specified. Recommended values are -3 to 2.
  1381.  
  1382.     DATEPROMPT_MIXED - Optional. Takes a parameter of Y or N. Supply Y to
  1383.  
  1384.  
  1385.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1386.  
  1387.  
  1388.  
  1389.     MAGNUM BBS (r) system for OS/2                                Page  1-17
  1390.     Configuring MAGNUM
  1391.  
  1392.  
  1393.                        have Magnum supply date prompts in mixed case (ie:
  1394.                        mM/dD/yyyy or dD.mM.yyyy), or N to supply date
  1395.                        prompts in uppercase (ie: MM/DD/YY or DD.MM.YYYY).
  1396.                        This keyword is optional, the default is N.
  1397.  
  1398.  
  1399.     SHOW_CALLERNUM - Optional. If you supply Y to this  keyword, Magnum will
  1400.                      function as usual. If you supply N to this keyword,
  1401.                      Magnum will suppress the "You are the nth caller on
  1402.                      node x" message when someone logs on.
  1403.  
  1404.     SHOW_DLS - If you supply Y to this keyword, Magnum will function as
  1405.                usual. If you supply N to this keyword, Magnum will suppress
  1406.                the information on the number of Downloads on each file
  1407.                during any file listings.
  1408.  
  1409.     REMOTE_MAIL - Optional. If you don't plan on using remote mail, you
  1410.                   should either supply N to this keyword, or leave the
  1411.                   keyword out alltogether (default is N). This field
  1412.                   applies only to NEW (first time) users. This is where NEW
  1413.                   users get their RMAIL field in their record from (see the
  1414.                   RMAIL field in the chapter on MBBSEXEC); in other words,
  1415.                   if you want new users to be able to use the remote mail
  1416.                   facilities immediately, supply Y to this keyword.
  1417.                   NOTE: Existing users on the system will be unaffected by
  1418.                   this field. Write a .MEX file for bulk update of existing
  1419.                   users (see MBBSEXEC).
  1420.  
  1421.     NEWUSER_TIME - new user's daily time limit (in minutes)
  1422.  
  1423.     LINES_SCREEN - new user's default for number of lines per screen
  1424.  
  1425.     LOWEST_BAUD - lowest baud rate allowed
  1426.  
  1427.     FILE_U_AREAS - file upload areas assigned to new user (use letters A-Z)
  1428.     FILE_D_AREAS - file download areas assigned to new user (letters A-Z)
  1429.     FILE_L_AREAS - file list areas assigned to new user (use letters A-Z)
  1430.  
  1431.     MSG_R_AREAS - message read areas assigned to new user (use letters A-Z)
  1432.     MSG_W_AREAS - message write areas assigned to new user (use letters A-Z)
  1433.     MSG_L_AREAS - message list areas assigned to new user (user letters A-Z)
  1434.  
  1435.     DISP_CMDS - "Display" commands (MILC) user is allowed to imbed in
  1436.                 messages s/he enters.
  1437.  
  1438.     RJE_AREA - area of file section designated for RJE results (ie: for use
  1439.                with the [F]ile menu's [M]ake command and for placement of
  1440.                resultant files from running RJE jobs).
  1441.  
  1442.     COMMENT_AREA - area of message section for "comments to/from sysop"
  1443.     STARTUP_TYPE - Session Startup (F=Fullscreen, W=Windowed) for this node
  1444.     FILEDES_AREA - area of message section for extended file descriptions
  1445.     PRIVMSG_AREA - area of message section for private system messages
  1446.  
  1447.  
  1448.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1449.  
  1450.  
  1451.  
  1452.     Page  1-18                                MAGNUM BBS (r) system for OS/2
  1453.                                                           Configuring MAGNUM
  1454.  
  1455.  
  1456.                    (messages generated by Magnum to a user).
  1457.  
  1458.     PRIVATE_MSGS - Y=private messages are allowed, N=private messages NOT
  1459.                    allowed.
  1460.                    NOTE: Comment to Sysop from main menu is *always* a
  1461.                          private msg regardless of this setting.
  1462.  
  1463.     VERIFY_PHONE - Range is 0 to 255. If 0, phone number is not verified. If
  1464.                    non-zero, the system will ask the user for phone number
  1465.                    verification after every Xth call. (ie: if X is 5, the
  1466.                    system will verify phone numbers for every 5th call the
  1467.                    user makes to the system). This is an additional security
  1468.                    check.
  1469.                    NOTE: If the GET_PHONE parameter is N, then the
  1470.                          VERIFY_PHONE parameter MUST be set to 0.
  1471.  
  1472.     VERIFY_DOB - Similar to VERIFY_PHONE except it verifies date of birth
  1473.                  after every Xth call the remote user makes. If 0, no
  1474.                  verification is asked for. NOTE: If the GET_DOB parameter
  1475.                  is N, then the VERIFY_DOB parameter MUST be set to 0.
  1476.  
  1477.     DEL_MSGS - Y=user is allowed to delete messages, N=user cannot delete
  1478.                messages.
  1479.                NOTE: Y only allows user to delete messages addressed to/from
  1480.                      his/her own user id.
  1481.  
  1482.     LOG_MSGS - Y=report each message read to the activity log - this can
  1483.                  make your activity logs very large very fast - especially
  1484.                  with a large message base.
  1485.                N=do NOT record each message read to activity log
  1486.                  (preferred).
  1487.  
  1488.     LOG_TIME - Y=prefix the time (hh:mm:ss) to each entry made in the
  1489.                  activity logs in addition to start time of user session.
  1490.                N=do not prefix time to entries made in activity logs (start
  1491.                  time of each user session is automatically entered in
  1492.                  activity logs).
  1493.  
  1494.     SYSOP_LVL - the security level assigned to the Sysop. can range from 1
  1495.                 to 9999. This should be the highest security level of all of
  1496.                 the users of the board. In our case, we're using a level of
  1497.                 1000.
  1498.  
  1499.     SYSOP_MAIL_LVL - Security Level needed to read private sysop mail. This
  1500.                      would be for assistant sysops who you might want to be
  1501.                      able to read private mail addressed to "sysop", but
  1502.                      without necessarily having any other sysop priveleges.
  1503.                      Level 900 is what we're using.
  1504.  
  1505.     DISPLAY_PW_FILES - Y=password protected files show up in the file
  1506.                          listings.
  1507.                        N=password protected files do NOT show up in file
  1508.                          listings.
  1509.  
  1510.  
  1511.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1512.  
  1513.  
  1514.  
  1515.     MAGNUM BBS (r) system for OS/2                                Page  1-19
  1516.     Configuring MAGNUM
  1517.  
  1518.  
  1519.  
  1520.     UPLOAD_COMP - range is from 0 to 255. If X is 0, no upload compensation
  1521.                   is granted, otherwise, upload compensation is X times the
  1522.                   number of minutes spent uploading a file. For example, if
  1523.                   X is 3, then if a user spends 5 minutes uploading a file,
  1524.                   then 5 times 3 = 15. Therefore, the user would receive 15
  1525.                   minutes of upload credit in the form of 15 minutes of
  1526.                   additional time left on the system.
  1527.  
  1528.     MSG_COMP - similar to UPLOAD_COMP, X can range from 0 to 255. X is in
  1529.                units of seconds per word. In other words, if X were 3 and
  1530.                the user entered a 100-word message, then 100 times 3 = 300.
  1531.                Therefore, the user would receive message compensation of 300
  1532.                seconds (5 minutes). Actual compensation is rounded to the
  1533.                nearest minute. 1 minute and 30 seconds rounds to 2 minutes,
  1534.                whereas 1 minute and 29 seconds rounds to 1 minute. We have
  1535.                our system set to 1.
  1536.  
  1537.     UL_DL_RATIO - a ratio counter for number of files downloaded. If X is
  1538.                   set to 10, then for every 10 files a user downloads, the
  1539.                   system expects 1 file in return. The system will not allow
  1540.                   further downloads until the ratio is met. If X is set to
  1541.                   0, no ratio is required - the user can download to their
  1542.                   heart's content.
  1543.  
  1544.     DL_BYTES - maximum bytes a user can download per day (see TIME_UNIT).
  1545.     DL_FILES - maximum files a user can download per day (see TIME_UNIT).
  1546.  
  1547.     MAX_TIME_CALL - maximum time limit for any caller (in minutes). This
  1548.                     field specifies how long any individual call can last
  1549.                     regardless of security level or time allowed for the
  1550.                     period. For example, if X is 60, then no caller will be
  1551.                     allowed to exceed 60 minutes for any given call even
  1552.                     though they might be allowed more than 60 minutes per
  1553.                     day. The caller must either log off at the end of 60
  1554.                     minutes or be forced off by the system. The caller can
  1555.                     call right back and be allowed another 60 minutes. This
  1556.                     is to ensure that no caller ties up the system without
  1557.                     giving someone else a chance.
  1558.  
  1559.     DAILY_TIME - new user daily time limit (in minutes).
  1560.  
  1561.     TIME_UNIT - Can be one of D (daily), W (weekly), M (monthly) or Y
  1562.                 (yearly). If D, everything is as expected. If W, all
  1563.                 parameters are internally multiplied by 7. If M, all
  1564.                 parameters are internally multiplied by the number of days
  1565.                 in the current month. If Y, all parameters are internally
  1566.                 multiplied by the number of days in the current year (365 or
  1567.                 366). Taking a weekly (W) user as an example, a newuser
  1568.                 default of 30 minutes per day would translate to 210 minutes
  1569.                 per week (30 times 7). The user could use all of this time
  1570.                 up in one day and not be allowed back on the system until
  1571.                 next week. The number of daily downloads allowed, etc are
  1572.  
  1573.  
  1574.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1575.  
  1576.  
  1577.  
  1578.     Page  1-20                                MAGNUM BBS (r) system for OS/2
  1579.                                                           Configuring MAGNUM
  1580.  
  1581.  
  1582.                 all multiplied by 7. Although the period types of D, M, and
  1583.                 Y have straightforward boundaries, W boundaries differ - for
  1584.                 example, in 1989, January 1st fell on a Sunday, therefore,
  1585.                 all W (weekly) boundaries will fall on a sunday for the
  1586.                 remainder of 1989. For any given year, the boundary day
  1587.                 which determines the change of week is the day that January
  1588.                 1st was for that year. This TIME_UNIT field is often
  1589.                 referred to in the documentation as "period" or "period
  1590.                 type".
  1591.  
  1592.     PRORATE - This parameter can be Y or N (yes or no). If Y, proration of
  1593.               any period type (TIME_UNIT) other than D (daily) will take
  1594.               place. This is best explained via example. If a user's period
  1595.               type is M (monthly), and the current month is June (30 days),
  1596.               then the user should have 30 times the daily parameters
  1597.               allocated. However, if PRORATE=Y, then if the user first calls
  1598.               the BBS on June 20, then MAGNUM will prorate the time left for
  1599.               actual days left in the month. In other words, June 20th means
  1600.               that only 10 days are left of the month, therefore, the user
  1601.               will only receive 10 times the daily allocation instead of the
  1602.               full 30. This proration will take place every logon. This may
  1603.               help lighten the extra load at the end of a period (week,
  1604.               month, year) when users scurry to get their time's worth in
  1605.               the last possible chance before a new period begins.
  1606.  
  1607.     PRINTER - A log is automatically kept by MAGNUM under the filename of
  1608.               ACTIVITY.X where X is the node number. This report can be
  1609.               routed to a printer or other device (or other file but that
  1610.               would duplicate the ACTIVITY.X file). If you are running more
  1611.               than one node, do NOT choose PRN as the device for each node
  1612.               unless you are using the print spooler. Supply "nul" (without
  1613.               the quotes) if you don't want anything printed (ie: if the
  1614.               ACTIVITY.X report is good enough for you).
  1615.  
  1616.     SUB_FILEDEL - This parameter can be Y or N (yes or no). If Y, Magnum
  1617.                   will subtract 1 upload credit each time a user deletes a
  1618.                   file they uploaded to the system. If N, Magnum will NOT
  1619.                   subtract any upload credits from the user's upload
  1620.                   counter.
  1621.  
  1622.     FREE_DL_AREAS - This parameter specifies file areas that a user can
  1623.                     download from without affecting their upload/download
  1624.                     ratio counter. If you're using an upload/download ratio
  1625.                     (ie: wanting 1 upload for every X files downloaded), you
  1626.                     can define which areas files can be designated as "free"
  1627.                     downloads. For example, if your company runs a support
  1628.                     BBS with updates of your software available for
  1629.                     download (regardless of how many downloads the user
  1630.                     performed to date), you would designate those area(s)
  1631.                     here. If you specify "ACH" (without the quotes), then
  1632.                     all files downloaded from file areas A, C and H will
  1633.                     be considered "free". (Free, in the sense that the
  1634.                     user's upload/download counter is not incremented).
  1635.  
  1636.  
  1637.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1638.  
  1639.  
  1640.  
  1641.     MAGNUM BBS (r) system for OS/2                                Page  1-21
  1642.     Configuring MAGNUM
  1643.  
  1644.  
  1645.  
  1646.     BLOCK_WRITES - This parameter can be Y or N (yes or no). If Y, Magnum
  1647.                    will send text to the comport in blocks (rather than
  1648.                    single bytes at a time) whenever possible. This will
  1649.                    improve the performance and efficiency of Magnum. On
  1650.                    the down side, "remote snoop" (where you can call your
  1651.                    BBS remotely and snoop on any node currently online
  1652.                    with a caller) may result in lost characters on your
  1653.                    remote "snoop" screen.
  1654.  
  1655.     NEW_MAIL - This parameter fan be one of three: "A" (without quotes) will
  1656.                ASK the user (at each logon) if they wish for Magnum to scan
  1657.                the message base for any "unread mail". "F" (without quotes)
  1658.                will FORCE a mail check (no prompts, just the mail check).
  1659.                "B" (without quotes) will bypass any mail checking or mail
  1660.                checking prompts.
  1661.  
  1662.     VERIFY_GOODBYE - This parameter can be Y or N (yes or no). If Y, the
  1663.                      system will ask the remote user if they're sure they
  1664.                      wish to log off (if the user is sure, they'll be
  1665.                      prompted as to whether they wish to leave a comment to
  1666.                      the sysop prior to disconnecting).
  1667.                      If N, the system will not ask the user if they're sure
  1668.                      about disconnecting, and will not prompt for a logoff
  1669.                      comment, it will just log the user off (the ending
  1670.                      quote will still be sent if the quote file is present,
  1671.                      and the GOODBYE.BBS file will also be sent if present).
  1672.  
  1673.     BADCMDMSG - Y=Issue Message for unauthorized menu commands, N=don't
  1674.  
  1675.     NOANSI - Y=Deactive ANSI color, N=ANSI color ok
  1676.                If NOANSI is set to Y, color escape sequences are not sent by
  1677.                Magnum regardless of the user's color settings. The user will
  1678.                be unable to change their color settings from the
  1679.                [E]nvironment option. The new ANSI message editor will still
  1680.                function by using all ANSI escape sequences except color.
  1681.  
  1682.     NOXFRTIME - Y=Timer inactive for file xfers, N=Normal BBS xfr operation
  1683.                   If NOXFRTIME is set to Y, the timer is disabled
  1684.                   during file transfers. For example, if a user has
  1685.                   a 30-minute time limit per day, the timer will stop
  1686.                   during file transfer, enabling the user to download
  1687.                   for hours on end. After transfer(s) are completed,
  1688.                   the timer starts again from where it left off before
  1689.                   the transfer. This situation is ideal for those
  1690.                   companies who provide updates/fixes to their software
  1691.                   via Magnum and, since each download saves the company
  1692.                   a few dollars in labeling, packaging, shipping, etc,
  1693.                   enabling this option ensures that every caller will
  1694.                   be able to download any/every file they need with
  1695.                   a single call.
  1696.                   NOTE: If you supply Y to the NOXFRTIME keyword, not
  1697.                   only is the timer disabled, but the following checks
  1698.  
  1699.  
  1700.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1701.  
  1702.  
  1703.  
  1704.     Page  1-22                                MAGNUM BBS (r) system for OS/2
  1705.                                                           Configuring MAGNUM
  1706.  
  1707.  
  1708.                   are also deactivated:
  1709.                              - UL/DL ratio
  1710.                              - Maximum K-bytes downloaded per period
  1711.                              - Maximum Files downloaded per period
  1712.                              - Time remaining for the period
  1713.  
  1714.     MAINMENU_HDR - Optional. Overrides the header (title) the user sees upon
  1715.                    entry into the main menu. The default main menu header is
  1716.                    "Magnum OS/2 BBS - Main Menu". If this keyword is
  1717.                    supplied, it will override the main menu header with what
  1718.                    you supply here. Example:
  1719.                        MAINMENU_HDR: ABC Corp - Main Menu
  1720.                    You may specify up to 60 characters.
  1721.  
  1722.     FILEMENU_HDR - Optional. Similar to MAINMENU_HDR but for file menu.
  1723.  
  1724.     MSGMENU_HDR - Optional. Similar to MAINMENU_HDR but for message menu.
  1725.  
  1726.     RJEMENU_HDR - Optional. Similar to MAINMENU_HDR but for RJE menu.
  1727.  
  1728.     SYSMENU_HDR - Optional. Similar to MAINMENU_HDR but for Sysop menu.
  1729.  
  1730.     CPUTYPE_OVERRIDE - Optional. If you specified Y to the GET_COMPUTER
  1731.                        keyword described earlier, Magnum will prompt the
  1732.                        user as to what brand of computer their using.
  1733.                        This keyword can override that prompt with your own.
  1734.                        For example, to find out what modem brand the user
  1735.                        is using:
  1736.                          CPUTYPE_OVERRIDE: What modem brand are you using
  1737.                        You can supply up to 40 characters. Magnum will
  1738.                        automatically append " => " (without quotes) when
  1739.                        displayed to your users. The user can respond with
  1740.                        up to 20 characters.
  1741.  
  1742.     The remainder of the configuration text file (STARTUP.x) allows you to
  1743.     define how you want menus to look. These are the internal menus which
  1744.     are dynamically built by MAGNUM. You'll see later how to create your own
  1745.     menu file, but internally, MAGNUM needs to know what security level
  1746.     gets to  do what  function, and  what letter  you wish  to assign to the
  1747.     functions, and what descriptions you want for the functions.
  1748.  
  1749.     Menu definitions are as follows:
  1750.  
  1751.        KEYWORD:  C,L,S
  1752.  
  1753.     where KEYWORD tells MAGNUM which function you are referring to, C  tells
  1754.     magnum  what  letter  of  the  alphabet  you  wish  to  use to call that
  1755.     function, L  tells MAGNUM  the minimum  security Level  needed to access
  1756.     that function, and  S is a  string up to  40 characters in  length which
  1757.     gives a descriptive text of the function.  See the sample STARTUP.X file
  1758.     for how we do it.  For example, the "[Y]ell for Sysop" might better suit
  1759.     your taste as:
  1760.  
  1761.  
  1762.  
  1763.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1764.  
  1765.  
  1766.  
  1767.     MAGNUM BBS (r) system for OS/2                                Page  1-23
  1768.     Configuring MAGNUM
  1769.  
  1770.  
  1771.           MAINMENU_PAGESYS: P,5,[P]age the Sysop
  1772.  
  1773.     The  above  statement  tells  MAGNUM  that  P  would  call  the function
  1774.     MAINMENU_PAGESYS  if  the  user  has  a  security level of 5 or greater.
  1775.     MAGNUM would show that part of the menu as:
  1776.  
  1777.             [P]age the Sysop
  1778.  
  1779.     However, if the user's security level is less than 5, then that part  of
  1780.     the menu would not appear.  In other words, only level 5 and above would
  1781.     see  that  menu  selection.    MAGNUM  dynamically  builds  these  menus
  1782.     according to  the user's  security level.   Be  careful not to duplicate
  1783.     call letters  within a  menu.   In other  words, it's  ok to have a call
  1784.     letter of P appear  in the main menu,  the file menu, the  message menu,
  1785.     etc - but P  can only appear once  within any individual menu  (ie:  You
  1786.     cannot have P for "[P]age Sysop" and for "[P]arms" in the same menu).
  1787.  
  1788.     The Descriptive text for commands (up to 40 characters) is completely up
  1789.     to the sysop configuring the system. the brackets surrounding the  first
  1790.     letter of the  description has no  bearing whatsoever -  it merely helps
  1791.     the user to know what command  is what.  "[M]essage Section" could  just
  1792.     as easily  be "M  - Messages"  or "M  = MAIL"  or "EMAIL ...........M" -
  1793.     whatever your preference.   Be warned  that MAGNUM generates  a 2-column
  1794.     menu display such that  column one is from  phsyical columns 1 thru  40,
  1795.     while column two is from physical  columns 41 thru 80.  Although  MAGNUM
  1796.     accepts descriptive  text of  up to  40 characters,  you should maximize
  1797.     your text to  39 characters or  less otherwise this  is what can  happen
  1798.     with text using  all 40 characters:   If in  the first column,  the last
  1799.     character (column 40) will appear immediately before the first character
  1800.     of the  second column  (column 41);  Likewise, if  the second column (41
  1801.     thru 80) uses all  40 characters, then when  the character on column  80
  1802.     displays,  certain  displays  will  cause  an automatic CR/LF, leaving a
  1803.     blank line between this menu choice and the next one.
  1804.  
  1805.     There are  5 menu  sections -  each with  their own  unique keywords  as
  1806.     follows:
  1807.  
  1808.     --- MAIN MENU DEFINITIONS ---
  1809.  
  1810.     MAINMENU_MSG:       takes user from main menu to the message menu
  1811.     MAINMENU_FILE:      takes user from main menu to the files menu
  1812.     MAINMENU_RJE:       takes user from main menu to the RJE menu
  1813.     MAINMENU_BULLETIN:  takes user from main menu to the main bulletin file
  1814.     MAINMENU_QUESTION:  takes user from main menu to the main question file
  1815.     MAINMENU_COMMENT:   allows user to enter a private comment to sysop
  1816.     MAINMENU_PAGESYS:   system pages the sysop
  1817.     MAINMENU_WHO:       shows who's on the other nodes
  1818.     MAINMENU_CHAT:      enters group chat mode
  1819.     MAINMENU_INITIAL:   shows initial welcome screen(s) again (HELLO?.BBS)
  1820.     MAINMENU_USERS:     takes user to the "search user database" area
  1821.     MAINMENU_PARMS:     allows user to change parameters in their profile
  1822.     MAINMENU_STATS:     shows system statistics
  1823.     MAINMENU_CHILD:     takes user to the main "child" file (door menu)
  1824.  
  1825.  
  1826.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1827.  
  1828.  
  1829.  
  1830.     Page  1-24                                MAGNUM BBS (r) system for OS/2
  1831.                                                           Configuring MAGNUM
  1832.  
  1833.  
  1834.     MAINMENU_NEWS:      takes user to the main "news" file
  1835.     MAINMENU_GOODBYE:   logs user off and disconnects
  1836.     MAINMENU_EXPERT:    toggles expert mode on/off
  1837.     MAINMENU_HELP:      displays help file for main menu
  1838.     MAINMENU_SYSOP:     takes user into the sysop menu section
  1839.     MAINMENU_OPT1:      displays file MAINOPT1.BBS from DISPLAY DIRectory
  1840.     MAINMENU_OPT2:      displays file MAINOPT2.BBS from DISPALY DIRectory
  1841.  
  1842.     Be careful in setting up the security levels - if the security level for
  1843.     MAINMENU_GOODBYE is higher than the lowest person's security level, then
  1844.     the user  with the  lower security  level will  not be  able to log off!
  1845.     S/he will  have to  break the  connection at  their end!   Likewise,  if
  1846.     MAINMENU_HELP is too high, users with  lower levels will not be able  to
  1847.     get help!  Also, make sure that the MAINMENU_SYSOP level only allows YOU
  1848.     (or someone you trust) to access the Sysop menu, otherwise someone could
  1849.     cause a lot of damage to your system!
  1850.  
  1851.     --- Message Menu Definitions ---
  1852.  
  1853.     MSGMENU_QUIT:       Allows user to quit msg section. return to main menu
  1854.     MSGMENU_UPDT:       Allows user to change message area(s)
  1855.     MSGMENU_READ:       Allows user to enter the "read messages" submenu
  1856.     MSGMENU_SCAN:       Allows user to scan messages
  1857.     MSGMENU_ENTER:      Allows user to enter a message
  1858.     MSGMENU_KILL:       Allows user to kill (delete) a message addressed to
  1859.                         or from their own ID.
  1860.     MSGMENU_SRCH:       Allows user to perform a text search.
  1861.     MSGMENU_CHECK:      Allows user to check for their own personal mail.
  1862.     MSGMENU_GOODBYE:    Logs user off and disconnects.
  1863.     MSGMENU_HELP:       Displays the help file for the message section.
  1864.     MSGMENU_OPT1:       Displays file MSGOPT1.BBS from DISPLAY DIRecory.
  1865.     MSGMENU_OPT2:       Displays file MSGOPT2.BBS from DISPLAY DIRectory.
  1866.     MSGMENU_BASE:       Change Msg Base. Requires 'Extended MsgBase module'.
  1867.  
  1868.     --- File Menu Definitions ---
  1869.  
  1870.     FILEMENU_QUIT:      Allows user to quit file section. Returns to main
  1871.                         menu.
  1872.     FILEMENU_INFO:      Displays detailed info on a file, including extended
  1873.                         description if it exists.
  1874.     FILEMENU_LIST:      Lists available files by section(s).
  1875.     FILEMENU_DL:        Allows user to perform download(s).
  1876.     FILEMENU_UL:        Allows user to perform an upload.
  1877.     FILEMENU_NEW:       Allows user to perform a new files search by section
  1878.                         and date
  1879.     FILEMENU_SRCH:      Allows user to search file names and the brief
  1880.                         description for a string of text. Can filter by
  1881.                         date too.
  1882.     FILEMENU_STATS:     Displays user's statistics for the period and in ttl
  1883.     FILEMENU_GOODBYE:   Logs user off and disconnects.
  1884.     FILEMENU_HELP:      Displays help file for the files section.
  1885.     FILENENU_EXT:       Externally accesses ARC or ZIP file for list/view/dl
  1886.     FILEMENU_READ:      Allows user to read any ASCII text file.
  1887.  
  1888.  
  1889.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1890.  
  1891.  
  1892.  
  1893.     MAGNUM BBS (r) system for OS/2                                Page  1-25
  1894.     Configuring MAGNUM
  1895.  
  1896.  
  1897.     FILEMENU_CHANGE:    Allows user to change any file s/he uploaded.
  1898.     FILEMENU_MAKELIST:  Allows user to make an ARC'd or ZIP'd file listing
  1899.                         of available files by sections desired and dates.
  1900.     FILEMENU_OPT1:      Displays file FILEOPT1.BBS from DISPLAY DIRectory.
  1901.     FILEMENU_OPT2:      Displays file FILEOPT2.BBS from DISPLAY DIRectory.
  1902.     FILEMENU_BASE:      Change FileBase. Requires 'Extended FileBase' module
  1903.     FILEMENU_UTILS:     Utilities. Lets users Mark files, unmark, view, etc.
  1904.  
  1905.     --- RJE Menu Definition ---
  1906.  
  1907.     RJEMENU_QUIT:       Quits RJE section and returns to main menu
  1908.     RJEMENU_STATUS:     For checking the status of any RJE jobs user started
  1909.     RJEMENU_LIST:       List/Execute RJE menu file (external file you create
  1910.     RJEMENU_DELETE:     Kill an RJE job user started
  1911.     RJEMENU_FILES:      Lists completed files (created by RJE job) ready
  1912.                         for download
  1913.     RJEMENU_SYSOP:      For Sysop use only
  1914.     RJEMENU_HELP:       Displays help file for RJE section
  1915.     RJEMENU_GOODBYE:    Logs user off and disconnects
  1916.     RJEMENU_OPT1:       Displays file RJEOPT1.BBS from DISPLAY DIRectory.
  1917.     RJEMENU_OPT2:       Displays file RJEOPT2.BBS from DISPLAY DIRectory.
  1918.  
  1919.     --- SYSOP Menu Definition ---
  1920.  
  1921.     SYSMENU_QUIT:       Quits Sysop section - returns to main menu
  1922.     SYSMENU_CMD:        Calls the OS/2 Command Interpreter (CMD.EXE)
  1923.     SYSMENU_PRINT:      Prints the user database (to a file or device)
  1924.     SYSMENU_MSG:        Msg Database Area  -maintenance/adjustments of msgs
  1925.     SYSMENU_USER:       User Database Area -maintenance/adjustments of users
  1926.     SYSMENU_FILE:       File Database Area -maintenance/adjustments of files
  1927.     SYSMENU_ACTIVITY:   For listing activity logs (listed backwards) or to
  1928.                         remotely snoop on another session.
  1929.     SYSMENU_REMOTE:     For remotely accessing the Sysop console.
  1930.     SYSMENU_STATS:      Shows the status of the databases (user, msg, file,
  1931.                         rje), and performs physical deletions of deleted or
  1932.                         expired files and messages. Allows packing of
  1933.                         message or file databases.
  1934.     SYSMENU_HELP:       Displays the help file for the sysop section
  1935.     SYSMENU_GOODBYE:    Logs user off and disconnects
  1936.     SYSMENU_OPT1:       Displays file SYSOPT1.BBS from DISPLAY DIRectory.
  1937.     SYSMENU_OPT2:       Displays file SYSOPT2.BBS from DISPLAY DIRectory.
  1938.  
  1939.     -----------------------------------------------------------------
  1940.  
  1941.     Now that we've covered the text (source) file comprising the setup of  a
  1942.     node, you are  ready to "compile"  this file with  MAGNUM's MAKEMBBS.EXE
  1943.     program.    MAKEMBBS  scans  your  source  file  for errors and converts
  1944.     everything to a usable and readable "record" by MAGNUM BBS.  The  syntax
  1945.     for MAKEMBBS is:
  1946.  
  1947.            MAKEMBBS  X
  1948.  
  1949.     Where  X  is  the  node  number  of  your  source  file.  If you entered
  1950.  
  1951.  
  1952.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  1953.  
  1954.  
  1955.  
  1956.     Page  1-26                                MAGNUM BBS (r) system for OS/2
  1957.                                                           Configuring MAGNUM
  1958.  
  1959.  
  1960.     "MAKEMBBS 1"  (without quotes),  MAKEMBBS would  look for  STARTUP.1 and
  1961.     "compile"  it.    If  all  goes  well,  there  will be no error messages
  1962.     (warning messages are ok), your STARTUP.1 file will be deleted and a new
  1963.     file - MBBSINIT.1 will be created.
  1964.  
  1965.     DO NOT BE ALARMED that the  STARTUP.1 file was deleted!  There  are good
  1966.     reasons for the deletion but  rest assured, you could recreate  the file
  1967.     with the following command:
  1968.  
  1969.            MAKEMBBS -1 >STARTUP.1
  1970.  
  1971.     The minus sign (-) tells MAKEMBBS to recreate the STARTUP file from  the
  1972.     MBBSINIT  file.    The  reason  for  the  deletion  is so that you don't
  1973.     accidentally recompile the source  file which will overwrite  the actual
  1974.     record MAGNUM uses - the MBBSINIT file.  If you overwrite the file,  you
  1975.     will lose the updates MAGNUM makes to the record after every call - such
  1976.     as  incrementing  the  number  of  calls  received  for  that node, last
  1977.     caller's name, etc.
  1978.  
  1979.     For node 2, simply use the STARTUP.2 file instead, and change the 1's to
  1980.     2's in the above examples.  The same applies for nodes 3 and 4, etc.
  1981.  
  1982.     If you  start MAKEMBBS  without any  parameters, it  will "compile"  ALL
  1983.     STARTUP.x files it finds into their respective MBBSINIT.* files!
  1984.  
  1985.     * * * NOTE: This distribution includes a setup program (MINSTALL.EXE)
  1986.                 which will create a .CMD file to automate the installation
  1987.                 process. The MINSTALL.EXE program will create the necessary
  1988.                 subdirectories for you, and when you run the resultant .CMD
  1989.                 file, all files from the distribution distribution diskette
  1990.                 will be copied to the proper subdirectories.
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2016.  
  2017.  
  2018.  
  2019.     Directory Structure of MAGNUM                                  Page  2-1
  2020.     Creating Subdirectories
  2021.  
  2022.  
  2023.  
  2024.     Once you've edited and saved the STARTUP.x files, and ran them all  with
  2025.     the MAKEMBBS.EXE program (with error-free results), you're ready to  run
  2026.     the  setup  program  MINSTALL.EXE  to  automate  your installation.  You
  2027.     should be in the subdirectory containing the output of the  MAKEMBBS.EXE
  2028.     program (MBBSINIT.x).  Start  the MINSTALL.EXE program (no  command-line
  2029.     parameters are  needed) and  MINSTALL.EXE will  create a  .CMD file  for
  2030.     every MBBSINIT.x file it finds.   For example, if you have a  MBBSINIT.1
  2031.     file, MINSTALL.EXE will  create a MNODE1.CMD  file.  You'll  need to run
  2032.     these command files (once each) with the distribution diskette in  drive
  2033.     A to complete the installation.  *** NOTE:  IF ALL OF YOUR NODES WILL BE
  2034.     USING IDENTICAL DIRECTORY STRUCTURES, YOU CAN RUN ANY OF THE  MNODEx.CMD
  2035.     FILES SINCE THEY WILL ALL BE IDENTICAL!
  2036.  
  2037.     IMPORTANT: EACH NODE MUST HAVE ITS OWN, UNIQUE WORK_DIR!
  2038.  
  2039.     After the MNODEx.CMD files have been executed, these are the files which
  2040.     belong in the  subdirectories (some of  the "canned" files  have already
  2041.     been placed there by the  MNODEx.CMD command files, others will  have to
  2042.     be created, others will be generated during runtime):
  2043.  
  2044.     PROGRAM DIRECTORY:  MBBS.EXE       Main (parent) program for MAGNUM BBS
  2045.                         MSESSION.EXE   Child program runs user sessions
  2046.                         MAKEMBBS.EXE   Configuration compiler/disassembler
  2047.                         GETFILES.EXE   File xfer pgm called by MSESSION.EXE
  2048.                         PUTFILES.EXE   File xfer pgm called by MSESSION.EXE
  2049.                         MBBSEXEC.EXE   Magnum BBS executive maintanence pgm
  2050.                         RJEMONIT.EXE   RJE monitor program (daemon process)
  2051.                         KILLPROC.EXE   Used internally by Magnum.
  2052.                         STOPMBBS.EXE   Stops ALL MBBS.EXE and LOCALBBS.EXE
  2053.                                        programs running on this computer
  2054.                                        and on your LAN (if LAN is used).
  2055.                         STOPRJE.EXE    Stops ALL RJEMONIT.EXE programs
  2056.                                        running on this computer and on
  2057.                                        your LAN (if LAN is used).
  2058.                         MBBSINIT.x     (x=node #)
  2059.                         STARTUP.x      (x=node #)
  2060.                         ANNOUNCE.x     (x=node #) When a node is in the
  2061.                                        'announce only' mode, each time an
  2062.                                        announcement is sent, Magnum logs
  2063.                                        this to a file in your PROGRAM
  2064.                                        DIRectory called ANNOUNCE.LOG
  2065.                         MBBS.ACE       File containing ACE (Automatic
  2066.                                         Command Execution) statements
  2067.                                         (events).
  2068.                         ACE.LOG        Contains ACE results - updated
  2069.                                         whenever an ACE command is executed,
  2070.                                         and when system is started.
  2071.                         REMAPDIR.x     (x=node #). Used to remap directories
  2072.                                        for those running additional copies
  2073.                                        of Magnum on their LAN.
  2074.                         NOTMAIL.x      For display when node x is in 'mail
  2075.                                        only' mode. Displayed when a non-mail
  2076.  
  2077.  
  2078.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2079.  
  2080.  
  2081.  
  2082.     Page  2-2                                  Directory Structure of MAGNUM
  2083.                                                      Creating Subdirectories
  2084.  
  2085.  
  2086.                                        account tries to logon.
  2087.  
  2088.     SESSION DIRECTORY:  SPLITKEY.EXE   Rebuilds *.KEY files from USER.DAT
  2089.                         AMMO.MAG       Optional - used for Remote Mail.
  2090.                         NOCHANGE.LST   Optional - defines unchangeable
  2091.                                        parameters within the [E]nvironment
  2092.                                        selection of the main menu.
  2093.                         BADNAME.LST    List of unallowable logon names
  2094.                         BADUPLD.LST    List of unallowable upload filenames
  2095.                         NOANSCHK.LST   List of file extensions NOT to
  2096.                                        perform an ANSI check on after upload
  2097.                         COMPRESS.LST   Define external file compression pgms
  2098.                         USER.KEY       The keyfile used during logons
  2099.                         USER.DAT       The user database
  2100.                         FILE.DAT       The file database
  2101.                         MSG.DAT        The message database
  2102.                         RJE.DAT        The RJE database
  2103.                         UTILIZ.DAT     The utilization database (optional)
  2104.                         MILC.SUB       (Optional). If present, defines
  2105.                                        characters which are to be replaced
  2106.                                        (substituted) with other characters.
  2107.                         QSECy.BBS | QSECy.SCR  y=user security level
  2108.                         SECy.BBS  | SECy.SCR
  2109.                         IDz.BBS   | IDz.SCR    z=specific user id
  2110.  
  2111.     BULLETIN DIRECTORY: BULLETIN.BBS | BULLETIN.SCR     other files may be
  2112.                         NEWSLTR.BBS  | NEWSLTR.SCR      contained here which
  2113.                         QUESTION.BBS | QUESTION.SCR     are "included" by
  2114.                         QUESNEW.BBS  | QUESNEW.SCR      any of these
  2115.                                                         particular files.
  2116.  
  2117.     MENU DIRECTORY:     MAINMENU.BBS | MAINMENU.SCR     if any of these
  2118.                         FILEMENU.BBS | FILEMENU.SCR     files exist, MAGNUM
  2119.                         MSGMENU.BBS  | MSGMENU.SCR      displays the file
  2120.                         SYSMENU.BBS  | SYSMENU.SCR      for the menu
  2121.                         RJEMENU.BBS  | RJEMENU.SCR      of the dynamic menu
  2122.                                                         it builds
  2123.                                                         internally.
  2124.  
  2125.     HELP DIRECTORY:     MAINHELP.BBS | MAINHELP.SCR     These are the "help"
  2126.                         FILEHELP.BBS | FILEHELP.SCR     files MAGNUM looks
  2127.                         MSGHELP.BBS  | MSGHELP.SCR      for when a user
  2128.                         SYSHELP.BBS  | SYSHELP.SCR      wants help in the
  2129.                         RJEHELP.BBS  | RJEHELP.SCR      section of the
  2130.                                                         BBS they are in.
  2131.  
  2132.     DISPLAY DIRECTORY:  HELLO1.BBS   | HELLO1.SCR     Displayed after logon
  2133.                         HELLO2.BBS   | HELLO2.SCR     Displayed after logon
  2134.                         HELLO3.BBS   | HELLO3.SCR     Displayed after logon
  2135.                         NEWUSER.BBS  | NEWUSER.SCR    Displayed for new
  2136.                                                        user only
  2137.                         BIRTHDAY.BBS | BIRTHDAY.SCR   Displayed on user's
  2138.                                                        birthday
  2139.  
  2140.  
  2141.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2142.  
  2143.  
  2144.  
  2145.     Directory Structure of MAGNUM                                  Page  2-3
  2146.     Creating Subdirectories
  2147.  
  2148.  
  2149.                         GOODBYE.BBS  | GOODBYE.SCR    Displayed at logoff
  2150.                         PRELOG.BBS                    Displayed before logon
  2151.                         LOWBAUD.BBS                   Displayed if baud too
  2152.                                                        low
  2153.                         CLOSED.BBS                    Displayed if a closed
  2154.                                                        BBS
  2155.                         OPEN.BBS                      Displayed if running
  2156.                                                       an open BBS and new
  2157.                                                       user not found in
  2158.                                                       user database.
  2159.                         QUOTES.BBS                    Displays a quote from
  2160.                                                        here
  2161.                         PREUP.BBS    | PREUP.SCR      Displays prior to
  2162.                                                        upload
  2163.                         POSTUP.BBS   | POSTUP.SCR     Displays after an
  2164.                                                        upload
  2165.                         PREDOWN.BBS  | PREDOWN.SCR    Displays prior to
  2166.                                                        download
  2167.                         POSTDOWN.BBS | POSTDOWN.SCR   Displays after
  2168.                                                        download
  2169.                         UDRATIO.BBS  | UDRATIO.SCR    (u/l to d/l ratio
  2170.                                                        exceeded)
  2171.                         PRELIST.BBS  | PRELIST.SCR    (pre file-list
  2172.                                                        message)
  2173.                         MAINOPT1.BBS | MAINOPT1.SCR   Displays from main [1]
  2174.                         MAINOPT2.BBS | MAINOPT2.SCR   Displays from main [2]
  2175.                         FILEOPT1.BBS | FILEOPT1.SCR   Displays from file [1]
  2176.                         FILEOPT2.BBS | FILEOPT2.SCR   Displays from file [2]
  2177.                         MSGOPT1.BBS  | MSGOPT1.SCR    Displays from msg [1]
  2178.                         MSGOPT2.BBS  | MSGOPT2.SCR    Displays from msg [2]
  2179.                         RJEOPT1.BBS  | RJEOPT1.SCR    Displays from rje [1]
  2180.                         RJEOPT2.BBS  | RJEOPT2.SCR    Displays from rje [2]
  2181.                         SYSOPT1.BBS  | SYSOPT1.SCR    Displays from sys [1]
  2182.                         SYSOPT2.BBS  | SYSOPT2.SCR    Displays from sys [2]
  2183.                         FDIR_x.BBS   | FDIR_x.SCR     Displays when user
  2184.                                                       chooses [L]ist command
  2185.                                                       from Files menu, such
  2186.                                                       that if user lists
  2187.                                                       area G for example,
  2188.                                                       FDIR_G.BBS (or
  2189.                                                       FDIR_G.SCR) will
  2190.                                                       display prior to
  2191.                                                       listing the files in
  2192.                                                       area G. FDIR_x.* files
  2193.                                                       are optional and will
  2194.                                                       only display if the
  2195.                                                       matching FDIR_x.* file
  2196.                                                       exists. CAUTION: Avoid
  2197.                                                       using MILC commands
  2198.                                                       which halt the display
  2199.                                                       or ask for user input
  2200.                                                       because user's may
  2201.                                                       wish to capture your
  2202.  
  2203.  
  2204.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2205.  
  2206.  
  2207.  
  2208.     Page  2-4                                  Directory Structure of MAGNUM
  2209.                                                      Creating Subdirectories
  2210.  
  2211.  
  2212.                                                       entire listing while
  2213.                                                       viewing it in a
  2214.                                                       nonstop fashion.
  2215.  
  2216.     EXTERNAL DIRECTORY: ARC2.EXE                    (Used for creating,
  2217.                                                      viewing, etc of
  2218.                                                      compressed .ARC files)
  2219.                         PKZIP2.EXE / PKUNZIP2.EXE   (Used for creating,
  2220.                                                      viewing, etc of
  2221.                                                      compressed .ZIP files)
  2222.                         ZIPCMT.x                    (Comments for uploaded
  2223.                                                      .ZIPs) x=node
  2224.                                                      number. When a remote
  2225.                                                      user finishes uploading
  2226.                                                      a new .ZIP file to the
  2227.                                                      BBS, the contents of
  2228.                                                      the file ZIPCMT.x will
  2229.                                                      be added as a comment
  2230.                                                      to the .ZIP file.
  2231.                         CHKANSI.EXE                 (ANSI Escape Sequence
  2232.                                                      Checker) Called by both
  2233.                                                      the message and file
  2234.                                                      section - if this
  2235.                                                      program detects a
  2236.                                                      harmful ANSI escape
  2237.                                                      sequence to redefine
  2238.                                                      keyboard key(s), MAGNUM
  2239.                                                      BBS immediately ends
  2240.                                                      the user's session and
  2241.                                                      locks them out of the
  2242.                                                      system. You can delete
  2243.                                                      or rename this program
  2244.                                                      if you do not wish
  2245.                                                      Magnum to use it
  2246.                                                      (sometime false harmful
  2247.                                                      escape sequences are
  2248.                                                      reproduced by file
  2249.                                                      compression methods
  2250.                                                      such as ZIP, ARC, etc).
  2251.                         CHILDREN.BBS | CHILDREN.SCR (menu for external
  2252.                                                      programs) Known as
  2253.                                                      'doors' on DOS BBS's.
  2254.                                                      The way this works is
  2255.                                                      that upon exit of
  2256.                                                      displaying this file,
  2257.                                                      the variable @Z0 should
  2258.                                                      hold the program name
  2259.                                                      (no path or drive, just
  2260.                                                      program name - the
  2261.                                                      program is expected to
  2262.                                                      be found in the
  2263.                                                      EXTERNAL DIRectory),
  2264.                                                      variable @Z1 should
  2265.  
  2266.  
  2267.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2268.  
  2269.  
  2270.  
  2271.     Directory Structure of MAGNUM                                  Page  2-5
  2272.     Creating Subdirectories
  2273.  
  2274.  
  2275.                                                      hold command line
  2276.                                                      arguments to be passed
  2277.                                                      to the child (if any),
  2278.                                                      and @N0 should have
  2279.                                                      it's bits set as
  2280.                                                      follows:
  2281.  
  2282.               128  64  32  16  8  4  2  1
  2283.                 |   |   |   |  |  |  |  |
  2284.                 |   |   |   |  |  |  |  \-> 1=echo user input to comport
  2285.                 |   |   |   |  |  |  |      0=no echo (child handles echo)
  2286.                 |   |   |   |  |  |  \----> 1=cooked mode
  2287.                 |   |   |   |  |  |         0=raw mode
  2288.                 |   |   |   |  |  \-------> 1=CR translates to CR/LF pair
  2289.                 |   |   |   |  |            0=no translation to CR/LF pair
  2290.                 |   |   |   |  \----------> 1=CR tranlates to LF
  2291.                 |   |   |   |               0=no translation to LF
  2292.                 |   |   |   \-------------> 1=CR translates to NUL
  2293.                 |   |   |                   0=no translation to NUL
  2294.                 |   |   \-----------------> Not used
  2295.                 |
  2296.                 |   \---------------------> 1=Mark the ACTIVITY.x handle as
  2297.                 |                             inheritbale by the child
  2298.                 |                             process. See MILC command @V92
  2299.                 |                           0=ACTIVITY.x handle is not
  2300.                 |                             inheritable by the child
  2301.                 |                             process (default).
  2302.                 \-------------------------> 1=Mark comport handle as
  2303.                                               inheritable by the child
  2304.                                               process. See MILC command @V0.
  2305.                                             0=Comport handle is not
  2306.                                               inheritable by the child
  2307.                                               process (default).
  2308.  
  2309.  
  2310.                      NOTE: For most doors, such as "adventure", the
  2311.                            the following statement would be required:
  2312.  
  2313.                                          @N0=7;
  2314.  
  2315.                            This would set bits 1, 2, and 4 on. To compute
  2316.                            the value you need for any particular door, add
  2317.                            up the bit "field" numbers which have their
  2318.                            bits set to 1. For instance, in the above
  2319.                            example, bit fields 1, 2 and 4 are each set
  2320.                            to 1. Therefore, adding up bit fields (1+2+4)
  2321.                            gives a result of 7. If bit fields 16 and 2 were
  2322.                            the only ones set, then 16+2 = 18, thus your
  2323.                            @N0 assignment would be @N0=18;
  2324.  
  2325.  
  2326.     RJE DIRECTORY:      When in the RJE section of the BBS, the
  2327.                         [L]ist/Execute menu selection will look for, and
  2328.  
  2329.  
  2330.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2331.  
  2332.  
  2333.  
  2334.     Page  2-6                                  Directory Structure of MAGNUM
  2335.                                                      Creating Subdirectories
  2336.  
  2337.  
  2338.                         display the file RJELIST.BBS (or RJELIST.SCR) in the
  2339.                         RJE DIRectory. In our sample distribution, the
  2340.                         following files have been placed in your RJE
  2341.                         directory by the MINSTALL.EXE program:
  2342.  
  2343.                             RJELIST.BBS - sample RJE list/execute menu
  2344.                             MSGLIST.EXE - sample RJE program
  2345.                             MSGLIST.RJE - sample RJE/MILC processing
  2346.                            USERMSGS.CMD - sample RJE command file for the
  2347.                                           MSGLIST samples above.
  2348.                              ADDRJE.EXE - adds RJE files to file database.
  2349.                                           For more info on this program,
  2350.                                           execute it without any parms.
  2351.                            MARKUNRD.MEX - background process to unmark
  2352.                                           read messages by a given user.
  2353.                            MARKUNRD.RJE - starts MARKUNRD.MEX
  2354.  
  2355.                         All RJE programs are expected to be found in this
  2356.                         subdirectory.
  2357.  
  2358.     MSG DIRECTORY:      Where message files go. Any messages which are a
  2359.                         description of an available file for download, will
  2360.                         have the same filename as the downloadable file. MSG
  2361.                         DIRECTORY is the parent subdirectory, and there MUST
  2362.                         be 26 subdirectory entries within this directory,
  2363.                         named A to Z. (IE: \magnum\msg\a, \magnum\msg\b ...
  2364.                         \magnum\msg\z). These 26 subdirectories will be
  2365.                         created by the MINSTALL.EXE program.
  2366.  
  2367.     WORK DIRECTORY:     Temporary workspace used by Magnum during sessions.
  2368.                         CAUTION: WE STRONGLY RECOMMEND A UNIQUE PATHNAME
  2369.                         FOR EACH NODE USED IN YOUR BBS!!
  2370.  
  2371.     USERS DIRECTORY:    If you allow your users access to MILC commands @Zx
  2372.                         and/or @Nx, any messages they create containing the
  2373.                         @Zx or @Nx commands which write output will be
  2374.                         written to the same filename as the file containing
  2375.                         these commands, but placed in this directory. Also,
  2376.                         user NotePads will be kept in this directory.
  2377.  
  2378.     SYSOUT DIRECTORY:   ACTIVITY.x    (x=comport (node) number) Activity Log
  2379.                         SYSCHAT.LOG   The log of Chat between Sysop<->User
  2380.                         GRPCHAT.LOG   The log of Group Chat
  2381.                         *.R??         ??=com port number (response files)
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2394.  
  2395.  
  2396.  
  2397.     Directory Structure of MAGNUM                                  Page  2-7
  2398.     Order of Display Files
  2399.  
  2400.  
  2401.  
  2402.     Although a little premature for this, you will need to know the order of
  2403.     the display files for later:
  2404.  
  2405.     ANNOUNCE.x  - displays only if node is used for "announce only"
  2406.                    (x=node #) [logs each 'announcement' to ANNOUNCE.LOG in
  2407.                    your PROGRAM DIRectory].
  2408.     LOWBAUD.BBS - displays if user's baud rate is less than sysop's
  2409.                    predefined lowest baud rate
  2410.     PRELOG.BBS  - displays after making connection at acceptable baud rate.
  2411.     CLOSED.BBS  - displays if user not in database and sysop running a
  2412.                    closed bbs.
  2413.     OPEN.BBS    - displays if user not in database and sysop running an
  2414.                    open bbs.
  2415.     QUESNEW.BBS - displays if applicable and is user's 1st call (and an OPEN
  2416.                    BBS)
  2417.     NEWUSER.BBS - displays if this is the user's first call (and an OPEN
  2418.                    BBS)
  2419.     BIRTHDAY.BBS- displays if user's birthdate matches current date.
  2420.     ID#.BBS     - displays if user's ID# matches.
  2421.     QSEC#.BBS   - displays if user's security level matches # - once.
  2422.     SEC#.BBS    - displays if user's security level matches # - always.
  2423.     HELLO1.BBS  - displays if exists.
  2424.     HELLO2.BBS  - displays if exists.
  2425.     HELLO3.BBS  - displays if exists.
  2426.     BULLETIN.BBS- reported if changed since last logon, but not displayed.
  2427.     NEWSLTR.BBS - reported if changed since last logon, but not displayed.
  2428.     MAINMENU.BBS- if exists.
  2429.     .
  2430.     .
  2431.     QUOTES.BBS  - Ending quote from this file is presented at logoff. The
  2432.                   quote number sent is equal to:
  2433.                       (NUMBER OF TIMES CALLER CALLED) MOD (NUMBER OF QUOTES)
  2434.     GOODBYE.BBS - if exists. This would be a good place to place MILC
  2435.                   command @Wx (Wait x miliseconds) in order to give your
  2436.                   modem a chance to empty its buffer (send) to the remote
  2437.                   modem before finally disconnecting. @W2000 (wait 2
  2438.                   seconds) is usually sufficient.
  2439.  
  2440.     NOTE: Whenever Magnum can't open or display a file, it will send an
  2441.           informational message to the console (if you're snooping on
  2442.           someone):
  2443.  
  2444.             << SYSOP NOTE: File "filename" Not Found >>
  2445.  
  2446.           The remote user will never see this message, it's merely an
  2447.           informational message. You'll see these messages when you log on
  2448.           locally via the console as well. This message does not indicate
  2449.           an error, it merely indicates that the file didn't exist. For
  2450.           example, the HELLOx.BBS files are optional, and this message will
  2451.           display for each one of those files not found - this is normal.
  2452.  
  2453.  
  2454.  
  2455.  
  2456.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.                          This Page Intentionally Blank
  2488.  
  2489.  
  2490.  
  2491.     Running MAGNUM BBS                                             Page  3-1
  2492.     Starting MAGNUM BBS for the First Time
  2493.  
  2494.  
  2495.  
  2496.     Rather than go into  the detail about the  various .BBS and .SCR  files,
  2497.     you can use the ones supplied for now and tailor them to your own liking
  2498.     later on.   This way you  can start your  BBS now -  not after hours  of
  2499.     editing the .BBS files.
  2500.  
  2501.     Make sure you  are in the  subdirectory you've defined  for PROGRAM_DIR.
  2502.     You should have at least the following files in that subdirectory:
  2503.  
  2504.            MBBS.EXE
  2505.            MSESSION.EXE
  2506.            MAKEMBBS.EXE
  2507.            GETFILES.EXE
  2508.            PUTFILES.EXE
  2509.            MBBSEXEC.EXE
  2510.            RJEMONIT.EXE
  2511.            STOPMBBS.EXE
  2512.            STOPRJE.EXE
  2513.            KILLPROC.EXE
  2514.            MBBSINIT.?     (?=node#)
  2515.  
  2516.     IMPORTANT: ---> Just a reminder that this document  assumes  the  4-node
  2517.                 version of Magnum,  in which case node 4  (ie: STARTUP.4 and
  2518.                 MBBSINIT.4)  comprise your local console  node.  If you have
  2519.                 the 2-node  version,  node 2 is your local console node.  If
  2520.                 you have the 9-node  version,  node 9 is  your local console
  2521.                 node. If you have the 17-node version, node 17 is your local
  2522.                 console node, etc!
  2523.  
  2524.     If you have  a PS/2, the  COM02.SYS device driver  will support up  to 3
  2525.     communications  ports,  otherwise  the  COM01.SYS  device driver (for AT
  2526.     class  machines)  will  support  2  communications  ports.    MAGNUM  is
  2527.     currently  compiled  to  support  the  limit  of  COM02.SYS  or 3 ports,
  2528.     therefore COM4 (a virtual node) reserved for local (modemless) logon  by
  2529.     the sysop will be the local node.   You will need to create a  STARTUP.4
  2530.     file and use MAKEMBBS.EXE to compile the file into an MBBSINIT.4 - To do
  2531.     this simply copy one of your  other STARTUP.x files and modify the  node
  2532.     number in  the file  to reflect  comport 4.  This file  will be used for
  2533.     local (console,  modemless) logons.   Don't  worry about  what's in  the
  2534.     modem startup  strings or  other parameters  - they  will be  ignored at
  2535.     startup, however, something *is* necessary  in these fields, so this  is
  2536.     why I suggest to  simply copy the file  from startup.1 or startup.2  and
  2537.     modify the comport number.  Simply compile with MAKEMBBS.EXE and  you're
  2538.     set to do your first, local (modemless) logon!
  2539.  
  2540.     NOTES: Prior to starting your BBS, you should modify your PATH statement
  2541.            to include your PROGRAM_DIRectory, EXTERNAL_DIRectory, and your
  2542.            RJE_DIRectory paths.
  2543.            It might also be a good idea for you to create a .CMD file to
  2544.            set these paths and to start MBBS.EXE automatically (from the
  2545.            system STARTUP.CMD file) in the event of a power failure - this
  2546.            way, the system will restart when the power returns.
  2547.            Magnum only opens comports provided both the following criteria
  2548.  
  2549.  
  2550.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2551.  
  2552.  
  2553.  
  2554.     Page  3-2                                             Running MAGNUM BBS
  2555.                                       Starting MAGNUM BBS for the First Time
  2556.  
  2557.  
  2558.            are met: 1) An MBBSINIT.x file exists for comport x, and 2) the
  2559.            MBBSINIT.x file was "compiled" with the ACTIVE parm set to Y.
  2560.            If either of these cases is false, the comport will not be used
  2561.            and will be available for all other programs wishing to open the
  2562.            particular comport.
  2563.  
  2564.     At this point you can start MAGNUM by entering MBBS on the command line.
  2565.     Any MBBSINIT file  found by MAGNUM  with the ACTIVE  parm set to  Y will
  2566.     result  in  MAGNUM  opening  the  comport  for that node and sending the
  2567.     initialization strings to the modem.  Any MBBSINIT file with the  ACTIVE
  2568.     parm set to N  (and any MBBSINIT file  NOT found) will result  in Magnum
  2569.     not using the comport for those particular node(s) and will  leave those
  2570.     comports free to be used  by other programs.  After  initialization, you
  2571.     will do a local logon by typing the following:
  2572.  
  2573.             * LOGON
  2574.  
  2575.     Shortly after  you hit  the '*'  character, it  will appear  next to the
  2576.     "Command=>" prompt.  To start a  command, you either need to start  with
  2577.     the '*' character or the node number.   In the case of local logon,  you
  2578.     need to start with the '*' character.  Before you hit the '*' character,
  2579.     MAGNUM was checking the comports for  incoming calls.  Once you hit  the
  2580.     '*' or node number (1, 2,  etc) - MAGNUM immediately stops checking  for
  2581.     incoming calls  and accepts  what you  have to  type at  the "Command=>"
  2582.     prompt.  MAGNUM  always assumes that  if you're typing  something at the
  2583.     "Command=>" prompt  that it's  of very  high priority,  so it stops what
  2584.     it's doing (checking for incoming calls) until you've entered a  command
  2585.     and it  finishes processing  that command.   The  syntax of commands are
  2586.     always "X COMMAND" where X is an asterisk or digit - remember to  always
  2587.     leave one space between the X and the COMMAND.
  2588.  
  2589.     After  you've  entered   the  "*  LOGON"   command,  MAGNUM  will   call
  2590.     MSESSION.EXE to  run your  session.   You are  a new  user at this point
  2591.     since there is no entry in the user database for you (or anyone else for
  2592.     that matter).  Once you are prompted with the "LOGIN" prompt, enter your
  2593.     First Name exactly  the way it  appeared in your  config file and  press
  2594.     enter.  Do the same with middlename and lastname - these must match  the
  2595.     config file exactly!  Once it matches, MAGNUM will welcome you as  Sysop
  2596.     and make you go through the  "new user logon procedure".  If  per chance
  2597.     someone has called your BBS prior to you logging on for the first  time,
  2598.     they will get  a "system not  initialized" message and  be automatically
  2599.     logged off.   You  (as sysop)  must have  an ID  number of  /0 (read  as
  2600.     slash-zero).
  2601.  
  2602.     After you complete the new user logon procedure, you can now go into the
  2603.     sysop section  and modify  your parameters  to whatever  parms you wish.
  2604.     Once in the sysop  section, choose the User  area.  Your profile  should
  2605.     come up on the  screen.  Simply enter  any fieldname you wish  to change
  2606.     and hit enter -  MAGNUM will then prompt  you for the new  value of that
  2607.     field.  Everything else  in the user area  of the sysop section  is self
  2608.     explanatory but we'll go into more detail on that later on.
  2609.  
  2610.     IMPORTANT: When online locally, the up and down arrow keys, and the PgUp
  2611.  
  2612.  
  2613.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2614.  
  2615.  
  2616.  
  2617.     Running MAGNUM BBS                                             Page  3-3
  2618.     Starting MAGNUM BBS for the First Time
  2619.  
  2620.  
  2621.                and PgDn keys have special meaning. These keys are accepted
  2622.                at any prompt, and you should use extreme caution with these
  2623.                keys, as they change the priority of your local session.
  2624.                Anytime you're looged onto the local console, you can
  2625.                increase/decrease the priority of your local session with the
  2626.                following keys:
  2627.  
  2628.                      PgUp - Increases Priority Class by 1
  2629.                      PgDn - Decreases Priority Class by 1
  2630.                   UpArrow - Increases Priority Level (within a class) by 1
  2631.                 DownArrow - Decreases Priority Level (within a class) by 1
  2632.  
  2633.                These keys are recognized at any system prompt, but will not
  2634.                be recognized during message entry or chat modes.
  2635.                CAUTION: Setting your priority too high can cause other
  2636.                         online sessions to "freeze" and file xfers on other
  2637.                         sessions to "time out" (fail)! Try avoiding Class 3
  2638.                         altogether!
  2639.  
  2640.                There are 3 Priority Classes (1-3), the higher the class, the
  2641.                higher the priority. Within each class, there are 32 levels
  2642.                (0-31), the higher the level, the higher the priority within
  2643.                that class. Class 1 is "Idle Time", Class 2 is "Regular", and
  2644.                Class 3 is "Time Critical". Remote users are running in Class
  2645.                2. The local logon is started as class 1, level 31 because
  2646.                when running locally, OS/2 gives a boost to the foreground
  2647.                session. Keep in mind that since you'll be running your local
  2648.                logon in the foreground, the higher the priority you give to
  2649.                your session, the slower the remote sessions will become
  2650.                because OS/2 is granting more processing time to your local
  2651.                session.
  2652.                After pressing any of the above 4 keys, Magnum will display
  2653.                an informational message similar to the following:
  2654.                   Priority: Class=1, Level=31
  2655.                Although this informational display sort of "messes up" the
  2656.                nice system prompt from where you were at, the prompt is
  2657.                unaware of any changes and still expects normal input as
  2658.                though nothing had happened. If you press any of the 4 keys
  2659.                too many times in succession, the informational messages
  2660.                sent with each keypress can cause the original prompt to
  2661.                scroll off the screen, so remember where you left off! This
  2662.                will become clearer to you as you use these realtime priority
  2663.                setting keys.
  2664.                IMPORTANT: In the LOCAL session, Class 2 Level 0 (just one
  2665.                           notch above the default of Class 1 Level 31) will
  2666.                           cause any remote users to notice significant
  2667.                           slowdown! You should NEVER go above Class 2 Level
  2668.                           0 unless you are the only one on the system and
  2669.                           you are running some other cpu-intensive
  2670.                           application that you want higher priority over.
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2677.  
  2678.  
  2679.  
  2680.     Page  3-4                                             Running MAGNUM BBS
  2681.                                                 Starting Your FILES Database
  2682.  
  2683.  
  2684.  
  2685.     Now that you're on the  system, it is ready for  use by others!  One  of
  2686.     the first things that a sysop usually  does is to add files to the  file
  2687.     section.  There are several ways to do this:
  2688.  
  2689.        1) Upload them via remote modem/computer;
  2690.        2) Manually place the files into the proper subdirectories you've set
  2691.           up and then use the Sysop section (file maintenance) to add them;
  2692.        3) If you're logged on locally, go into the [F]ile section and choose
  2693.           [U]pload - as long as you've logged on locally (from the Console),
  2694.           the actual file transfer (no matter which one you choose) will
  2695.           prompt you for the source of the file and will perform a local
  2696.           "copy" of the file. For example, if you had a file on diskette in
  2697.           drive A and wanted to get it into the files database, supply the
  2698.           name of the file (drive, path, etc) and Magnum will copy it from
  2699.           drive A to the proper subdirectory - this simulates an upload.
  2700.        4) if you are converting from another BBS system, and you know the
  2701.           record layout of its file database, you may be able to write a
  2702.           conversion program. We supply the layout of our databases in a
  2703.           file entitled MAGNUM.H located on your distribution diskette.
  2704.  
  2705.     MAGNUM allows an optional message to be associated with each file.  This
  2706.     optional message can be up to 150  lines of text in length.  Other  than
  2707.     doing an upload from  a remote computer, MAGNUM  will let you create  or
  2708.     modify  any  message  for  a  file  through  the  file menu's "[C]hange"
  2709.     command.
  2710.  
  2711.     On uploads of files in .ZIP format (a popular compression method used by
  2712.     PKWare), you  can add  a customized  "zip file  comment" to all uploads.
  2713.     See Chapter 2 (EXTERNAL DIRECTORY) for more information.
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2740.  
  2741.  
  2742.  
  2743.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-1
  2744.     Intro
  2745.  
  2746.  
  2747.     The end of  Chapter 2 lists  the order of  display files.   This chapter
  2748.     will explain  the embedded  MILC (Magnum  Interpreted Language Commands)
  2749.     which can  be a  part of  each of  your display  files.   MILC is a very
  2750.     powerful BBS language.  Before we go into that, it should be pointed out
  2751.     that anytime MAGNUM displays a file,  it first looks to see if  the user
  2752.     who's going to view  the file has their  color settings on.   If yes, it
  2753.     looks  for  whatever  filename  that's  about  to  be  displayed with an
  2754.     extension of  .SCR -  if it  finds it,  it displays  it -  otherwise, it
  2755.     displays the filename with an extension of .BBS instead.  Files with  an
  2756.     extension of .SCR are meant for color users only - you needn't have  any
  2757.     .SCR files to  have color, but  basically your .SCR  files are the  ones
  2758.     with the fancy ANSI escape sequences  in them to do things like  motion,
  2759.     cursor positioning, etc.
  2760.  
  2761.     Whether you use .SCR files or not, MAGNUM has provided a way for you  to
  2762.     use color in your  .BBS files and present  the color sequences to  those
  2763.     using color, or ignore them for those not using color - all  transparent
  2764.     to the user viewing the files.
  2765.  
  2766.     MAGNUM's  MILC  language  lets  you  take  advantage of advanced display
  2767.     techniques such  as mathematics,  string logic,  IF, inclusion  of other
  2768.     files  (with  options),  branch  to  anywhere  in the file, perform I/O,
  2769.     screen  control  (including  color),  give  the illusion of a customized
  2770.     display to the current user, and multitudes more!
  2771.  
  2772.                       Embedded MILC commands in Display Files
  2773.  
  2774.     Display files typically have extensions  of .BBS or .SCR and  display on
  2775.     the remote user's terminal.  The difference between .SCR and .BBS  files
  2776.     is .SCR files are searched for and displayed ONLY if the remote user has
  2777.     his color setting  set to YES.   In the  event that a  .SCR file is  not
  2778.     found, the corresponding .BBS file is displayed instead.  .BBS files may
  2779.     also  contain  color,  however,  the  color  is  via embedded MILC color
  2780.     commands  which  are  executed  only  if  the  remote user has his color
  2781.     setting set to YES, otherwise the embedded color commands are ignored.
  2782.  
  2783.     Display files  are not  limited to  .SCR or  .BBS files.   Every message
  2784.     (mail) entered on  your system in  the message section  can also contain
  2785.     MILC commands (refer to the page #'s defining the DISP_CMDS field in the
  2786.     index).  The DISP_CMDS field of each user's record defines which of  the
  2787.     MILC commands are available for them  to use in their messages.   In the
  2788.     case of  MILC commands  appearing in  messages, the  commands which  the
  2789.     originator  of  the  message  are  allowed  to  use (not the reader) are
  2790.     governed by the originator's DISP_CMDS field.
  2791.  
  2792.     All  display  files  (except  PRELOG.bbs,  LOWBAUD.bbs,  CLOSED.bbs  and
  2793.     OPEN.bbs) may contain  embedded MILC commands.   Numerous categories  of
  2794.     commands exist, each beginning  with the command character  "@" (without
  2795.     the quotes).  The above named exceptions may contain MILC commands which
  2796.     do NOT reference any USER-specific  information because the user is  not
  2797.     fully logged on at  this time (ie:   Magnum has no way  of knowing their
  2798.     name or any other information about the user).
  2799.  
  2800.  
  2801.  
  2802.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2803.  
  2804.  
  2805.  
  2806.     Page  4-2               Customizing MAGNUM - Display Files/MILC Commands
  2807.                                                          Color Commands (@A)
  2808.  
  2809.  
  2810.                                     @A commands
  2811.  
  2812.     PURPOSE: Change colors for 'color users' -no effect on 'non-color users'
  2813.      FORMAT: @Ax
  2814.              Where 'x' is a 1 to 3 digit number ranging from 0 to 255.
  2815.  
  2816.     The @A commands are the ones  that change the color attributes.   Once a
  2817.     @A command is executed, that color will remain until the end of the file
  2818.     or  until  another  @A  command  is  executed.    The  following are the
  2819.     attribute values of 'x':
  2820.  
  2821.        @A0 - BLACK on BLACK         @A8  - GRAY on BLACK
  2822.        @A1 - BLUE on BLACK          @A9  - hi-intensity BLUE on BLACK
  2823.        @A2 - GREEN on BLACK         @A10 - hi-intensity GREEN on BLACK
  2824.        @A3 - CYAN on BLACK          @A11 - hi-intensity CYAN on BLACK
  2825.        @A4 - RED on BLACK           @A12 - hi-intensity RED on BLACK
  2826.        @A5 - MAGENTA on BLACK       @A13 - hi-intensity MAGENTA on BLACK
  2827.        @A6 - BROWN on BLACK         @A14 - bright YELLOW on BLACK
  2828.        @A7 - WHITE on BLACK         @A15 - hi-intensity WHITE on BLACK
  2829.  
  2830.        @A16  to @A31  - same as @A0 to @A15 but on BLUE background
  2831.        @A32  to @A47  - same as @A0 to @A15 but on GREEN background
  2832.        @A48  to @A63  - same as @A0 to @A15 but on CYAN background
  2833.        @A64  to @A79  - same as @A0 to @A15 but on RED background
  2834.        @A80  to @A95  - same as @A0 to @A15 but on MAGENTA background
  2835.        @A96  to @A111 - same as @A0 to @A15 but on BROWN background
  2836.        @A112 to @A127 - same as @A0 to @A15 but on WHITE background
  2837.  
  2838.        @A128 to @A255 - same as @A0 to @A127 but blinking
  2839.                         (simply add 128 to any of the above for blinking)
  2840.  
  2841.     Example:
  2842.  
  2843.        @A2 You are a @A10New User@A2 and we welcome you aboard!
  2844.  
  2845.           this would print: "You are a New User and we welcome you aboard!"
  2846.  
  2847.           where then entire sentence is displayed in green except for "New
  2848.           User" which is displayed in hi-intensity green. If the remote user
  2849.           had his color settings set to NO, then the sentence would appear
  2850.           normally and all in one color (whatever color his CRT displays,
  2851.           and the @Ax commands are automatically removed).
  2852.  
  2853.     Notes:
  2854.  
  2855.        As with all '@' commands, the @Ax commands will not be displayed, but
  2856.        their effects will be displayed.
  2857.  
  2858.        The @A commands will have no effect if the user viewing any text
  2859.        containing these commands has their 'color' selection turned off -
  2860.        they will simply be stripped from the text and not executed.
  2861.  
  2862.  
  2863.  
  2864.  
  2865.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2866.  
  2867.  
  2868.  
  2869.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-3
  2870.     Branch (IF) Commands (@B)
  2871.  
  2872.  
  2873.  
  2874.                                     @B Commands
  2875.  
  2876.     PURPOSE: Branch conditionally or unconditionally to another part of the
  2877.              file
  2878.      FORMAT: @Bx(EXP);
  2879.              where 'x' is the label number to branch to (0 to 99), and
  2880.              EXP is the expression to be evaluated. If EXP (expression) is
  2881.              TRUE, the branch is taken, otherwise display continues.
  2882.  
  2883.     The @B  command alters  the display  of a  file.   It can  jump forward,
  2884.     backward, or not at all depending on the expression in parenthesis.
  2885.  
  2886.     NOTE:  Please read about the @Z, @N, and @P commands and have a thorough
  2887.            understanding of them before attempting to read further.
  2888.  
  2889.     In order for a branch to take place, the following 2 conditions must  be
  2890.     met:
  2891.  
  2892.         1) The expression must be TRUE
  2893.         2) The label must exist somewhere in the current file
  2894.  
  2895.     Let's say you have defined a label  somewhere in your file as label #  5
  2896.     (an  embedded  @P5  somewhere  in  the  file).   The label could be in a
  2897.     previous  part  of  the  file  or  in  a  forward  part of the file (ie:
  2898.     anyplace).
  2899.  
  2900.     Since  this  is  best  learned  by  examples,  lets  start with a forced
  2901.     (unconditional) branch:
  2902.  
  2903.          @B5(0=0);                  [ NOTE: @B5; is identical to @B5(0=0); ]
  2904.  
  2905.     This would  cause an  unconditional branch  to label  5 (@P5)  since the
  2906.     expression  (0=0)  is  true.    The  "="  sign means to compare the left
  2907.     parameter with the right parameter and if they are equal, the result  is
  2908.     true.  If the expression were  (0=1) instead, then no branch would  take
  2909.     place since  0 does  not equal  1. This  is the  simplest of  the branch
  2910.     instruction.  The valid comparators are:
  2911.  
  2912.              =    equal to
  2913.              >    greater than
  2914.              <    less than
  2915.              >=   greater than or equal to
  2916.              <=   less than or equal to
  2917.              !=   not equal to
  2918.              ~    If string2 is contained within string1
  2919.              !~   If string2 NOT contained within string1
  2920.  
  2921.     Using  numeric  variables  (see  the  @N  command), let's try a few more
  2922.     examples:
  2923.  
  2924.              @B5(N2=16);
  2925.              @B5(N2!=N12);
  2926.  
  2927.  
  2928.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2929.  
  2930.  
  2931.  
  2932.     Page  4-4               Customizing MAGNUM - Display Files/MILC Commands
  2933.                                                    Branch (IF) Commands (@B)
  2934.  
  2935.  
  2936.              @B5(N4<N2);
  2937.  
  2938.     Note  in  all  three  examples  the  absence  of any spaces.  All branch
  2939.     commands MUST BE TERMINATED WITH THE ';' character (semicolon)!
  2940.  
  2941.     Using  string  variables  (see  the  @Z  command),  let's try a few more
  2942.     examples:
  2943.  
  2944.              @B5(Z3=Z4);
  2945.              @B6(Z2!="John");
  2946.  
  2947.     Note the use of Quotes to define a "hard-coded" string (as opposed to  a
  2948.     variable string).  The  "hard-coded" string may contain  embedded spaces
  2949.     within the surrounding quotes.   NOTE:  string comparisons are  NOT case
  2950.     sensitive.  This means that "John" is the same as "joHN".
  2951.  
  2952.     Now for a working example:
  2953.  
  2954.            @N1=0;
  2955.            This line is being displayed
  2956.            @P5 This line will be displayed twice @N1=(N1+1); @B5(N1=1);
  2957.            And now on to the next line
  2958.  
  2959.     Evaluating the above, the first @  command is @N1=0; which assigns 0  to
  2960.     the variable N1.  The text "This line is being displayed" is  displayed.
  2961.     Next, a label (@P5) is defined and the text "This line will be displayed
  2962.     twice"  is  displayed.    After  that,  an  arithmetic  expression  that
  2963.     increments variable N1 by  1 is encountered.   N1 is increased by  1 and
  2964.     now contains the value 1. The  branch command says to branch to  label 5
  2965.     (@P5) if N1  is equal to  1. Since the  expression is TRUE,  a branch is
  2966.     taken to @P5 and "This line will be displayed twice" is displayed again.
  2967.     N1 is again incremented  by 1, leaving the  value 2 in variable  N1 as a
  2968.     result.  The branch statement becomes  false (N1 is now equal to  2, not
  2969.     1) and the display continues with "And now on to the next line".
  2970.  
  2971.     To check if a string is contained within another string, lets suppose
  2972.     that the variable @Z1 contained "HAPPY NEW YEAR". If you wanted to check
  2973.     to see if "EAR" were contained within the string, you could do it as
  2974.     follows:
  2975.  
  2976.              @B5(Z1~"EAR");   EAR is not in @Z1; @P5
  2977.  
  2978.     What this would do is check if string2 ("EAR") were contained in
  2979.     string1. If the result is TRUE, a branch would be taken to label @P5,
  2980.     otherwise no branch would be taken and processing would continue with
  2981.     displaying "EAR is not in HAPPY NEW YEAR". However, in this case, the
  2982.     comparision is TRUE and the branch would be taken to @P5, skipping over
  2983.     the display of "EAR is not in HAPPY NEW YEAR".
  2984.  
  2985.     NOTE: A forced (conditional) branch does not need the (EXP) part of the
  2986.           statement. For example, @B5; and @B5(0=0); are identical.
  2987.  
  2988.  
  2989.  
  2990.  
  2991.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  2992.  
  2993.  
  2994.  
  2995.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-5
  2996.     Screen Control Commands (@C)
  2997.  
  2998.  
  2999.  
  3000.                                     @C Commands
  3001.  
  3002.     PURPOSE: Controls the screen/display
  3003.      FORMAT: @Cx
  3004.              where x is a numeric parm representing the control function
  3005.  
  3006.     The @C command controls the screen or display of a file.  The parameters
  3007.     are 0 through 11 as follows:
  3008.  
  3009.              @C0  - NONSTOP.  This is the same effect as the remote user
  3010.                               answering 'N' to the "-- MORE -- [C]ont,
  3011.                               [S]top, [N]onstop" prompt.
  3012.  
  3013.              @C1  - STOP, WAIT FOR KEYPRESS. This command stops the display
  3014.                     and waits for the remote user to strike a key. Note that
  3015.                     no prompt is given - you should supply your own prompt
  3016.                     to let the remote user know that you are waiting for
  3017.                     them to press a key. (ie: "Press any key ...@C1")
  3018.  
  3019.              @C2  - RESUME NORMAL DISPLAY. This command negates the @C0
  3020.                     command - it resumes normal prompting ("-- MORE --")
  3021.                     when a full screen is displayed (and the remote user
  3022.                     has their "MORE" prompts turned on).
  3023.  
  3024.              @C3  - BEGIN SKIP. This command is kind of like a comment that
  3025.                     never gets shown. Everything following this command is
  3026.                     skipped until a @C4 command is encountered.
  3027.  
  3028.              @C4  - END SKIP. This command negates the @C3 command. Normal
  3029.                     Display and processing of text and commands resume when
  3030.                     this command is encountered.
  3031.  
  3032.              @C5  - IGNORE COMMANDS. Similar to the BEGIN SKIP (@C3)
  3033.                     command, this command turns off, or disables command
  3034.                     processing. All commands that follow from this point on
  3035.                     will be treated as text instead of commands (and thus
  3036.                     displayed instead of processed). The @C6 command is the
  3037.                     exception, which negates this command.
  3038.  
  3039.              @C6  - PROCESS COMMANDS. Negates @C5 command. When @C6 command
  3040.                     is encountered, normal command processing will resume.
  3041.  
  3042.              @C7x - CHANGE COMMAND CHARACTER. This is the only command in
  3043.                     the @C group of commands that takes another parameter.
  3044.                     That parameter is a single character which tells the
  3045.                     file display routines to use a different character to
  3046.                     recognize commands with. For example, the command @C7%
  3047.                     tells the file display functions that the '%' character
  3048.                     is now the command character, not the '@' character. So,
  3049.                     @C7^ makes the '^' character the command character from
  3050.                     that point on, until another ^C7 command is issued to
  3051.                     change it to another character. Use extreme caution in
  3052.  
  3053.  
  3054.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3055.  
  3056.  
  3057.  
  3058.     Page  4-6               Customizing MAGNUM - Display Files/MILC Commands
  3059.                                                 Screen Control Commands (@C)
  3060.  
  3061.  
  3062.                     selecting a command character - that character should
  3063.                     only be used for commands and not text.
  3064.  
  3065.              @C8  - RESET LINECOUNT. This command resets the line counter
  3066.                     used for the -More- prompt. This comes in handy after
  3067.                     'including' a file or branching to somewhere in the file
  3068.                     where this would become necessary.
  3069.  
  3070.              @C9  - PRESS ENTER. This command prompts the remote user to
  3071.                     press their ENTER (or C/R) key. The file display stops,
  3072.                     the "PRESS ENTER ..." prompt appears, and the function
  3073.                     waits until the remote user presses ENTER.
  3074.  
  3075.              @C10 - BREAK OFF. This command turns off the ability to break
  3076.                     or stop display of a file with the <Ctrl-X> or the space
  3077.                     bar. Although this command can appear anywhere in the
  3078.                     file, a user can still stop the display if s/he does so
  3079.                     before this command is processed. However, if @C10 is
  3080.                     contained as the first 4 characters of the file, the
  3081.                     command is guaranteed to take affect because Magnum will
  3082.                     disallow a break during the first 4 characters of a file
  3083.                     for this purpose.
  3084.  
  3085.              @C11 - BREAK ON. This command negates the @C10 command.
  3086.  
  3087.              @C12 - Ignore all text - process commands only. Ideal for large
  3088.                     blocks of commands where CR/LF and spaces are not
  3089.                     intended to display. Stays in this state until @C13
  3090.                     encountered.
  3091.                     ** CAUTION: Be careful when using @B (branch) commands
  3092.                                 without issuing a @C13 to turn text
  3093.                                 display/processing back on again.
  3094.  
  3095.              @C13 - Negate @C12.
  3096.  
  3097.              @C14 - Turn off HIGHLIGHT. Ordinarily, reader display of @Z,
  3098.                     @N, @O, and @U substitutions are highlighted. The @C14
  3099.                     command turns off this highlighting. NOTE: highlight is
  3100.                     only active when the remote user's color setting is Y.
  3101.  
  3102.              @C15 - Negate @C14.
  3103.  
  3104.              @C16 - Terminate display of current file.
  3105.  
  3106.              @C17 - Log the user off! (be careful with this one!) Emulates
  3107.                     a dropped carrier (disconnect). Sysop/Cosysop use only!
  3108.  
  3109.              @C18 - Clears the screen. If the user's color settings are set
  3110.                     to YES, an ANSI "clear screen" escape sequence is sent,
  3111.                     otherwise a FormFeed character (Ctrl-L) is sent.
  3112.  
  3113.              @C19 - forces an internal result code of FALSE (ie: file not
  3114.                     found or file not displayed). An example of the use for
  3115.  
  3116.  
  3117.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3118.  
  3119.  
  3120.  
  3121.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-7
  3122.     Screen Control Commands (@C)
  3123.  
  3124.  
  3125.                     this command would be the following: You wish to display
  3126.                     something using your external menu(s) (ie: FILEMENU.BBS,
  3127.                     MSGMENU.BBS, etc), but also want Magnum to dynamically
  3128.                     generate the menu. Magnum only generates an
  3129.                     internally-built dynamic menu if the xxxxMENU.BBS (or
  3130.                     xxxxMENU.SCR) file doesn't exist. Within this file, you
  3131.                     can now issue the @C19 command, which will generate an
  3132.                     internal result code indicating that the file was not
  3133.                     found - even though the file is displayed. This
  3134.                     essentially "fools" the menu routines into thinking that
  3135.                     the menu file was not found and will therefore generate
  3136.                     the internal menu. This MILC command is ignored if it
  3137.                     appears within a message file. This MILC command does
  3138.                     not terminate the display of a file, it merely sets the
  3139.                     internal result code.
  3140.  
  3141.                     NOTE: The external menu file is only displayed upon
  3142.                           entrance to the menu. After that, the internal
  3143.                           menu will be dynamically generated each time the
  3144.                           menu needs re-generation. If the menu is exited,
  3145.                           then returned to (ie: if in FILE menu, then the
  3146.                           menu will be re-generated if they choose [Q]uit,
  3147.                           and then re-enter the FILE section anytime
  3148.                           afterward).
  3149.  
  3150.              @C20 - Make the length of the string variable in @Z0 equal to
  3151.                     the length of the variable in @N0. The following gets
  3152.                     the user's first name into variable @z0, makes the
  3153.                     length exactly 10 characters, then displays it:
  3154.  
  3155.                      @z0=u3; @n0=10; @c20;
  3156.                      @z0;
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3181.  
  3182.  
  3183.  
  3184.     Page  4-8               Customizing MAGNUM - Display Files/MILC Commands
  3185.                                                Date Conversion Function (@D)
  3186.  
  3187.  
  3188.                                    @D Command
  3189.  
  3190.     PURPOSE: Converts a partial date to a 10-character date string
  3191.              (MM/DD/YYYY or DD.MM.YYYY depending on user's date format).
  3192.     FORMAT:  @Dx
  3193.  
  3194.     When prompting a user for a date, they may enter a date in a format such
  3195.     as M/D, MM/D, M/DD, MM/DD, MM/DD/Y, MM/DD/YY, etc (or it's European
  3196.     equivalent entry). The @Dx command simply converts a partial date to a
  3197.     10-character date string. The 'x' tells the @D command which @Zx
  3198.     variable holds the partial date string. In the following example:
  3199.  
  3200.          Enter Starting Date => @Z5(10); @D5
  3201.  
  3202.     The @Z5(10); prompts the user for a string of up to 10 characters which
  3203.     will be placed in variable @Z5. The @D5 command converts the date in
  3204.     variable @Z5 to a 10-character date string. For example, if the user
  3205.     entered "3/1" in response to the date prompt, the @D5 statement would
  3206.     convert the string to "03/01/1990" (or whatever the CURRENT YEAR happens
  3207.     to be). If the user has specified European date formats in their
  3208.     Environment settings, the date would be converted to 01.03.1990 instead.
  3209.  
  3210.     In the event a user enters garbage in response to the prompt (ie: an
  3211.     invalid date or invalid partial date), the @Dx function will convert the
  3212.     string in @Zx to "01/01/1980" (or 01.01.1980).
  3213.  
  3214.     Users can enter dates in either MM/DD/YYYY or DD.MM.YYYY formats. If
  3215.     the conversion routine called by @Dx sees the '/' character, it
  3216.     assumes the date has been entered in US date format, otherwise if it
  3217.     sees the '.' character, it assumes the date has been entered in
  3218.     European date format. If the user entered the date in US format but
  3219.     had their default settings to European, the date in @Zx would also
  3220.     be converted to European date format. Likewise, if the user entered
  3221.     the date in European format but had their default settings to US, the
  3222.     date in @Zx would also be converted to US date format.
  3223.  
  3224.     As a result, any external programs you write which accept a
  3225.     10-character date as input, must also be able to accept the date in
  3226.     either US or European format. Conversion from one format to another
  3227.     is not very difficult at all if the date is always supplied as a
  3228.     10-character string. For example, in the 'C' language, the following
  3229.     functions would perform your conversions:
  3230.  
  3231.         date2US(datestring)  /* Converts from European or US date */
  3232.         char *datestring;    /* format to US */
  3233.            {
  3234.            char c;
  3235.            if(datestring[2]=='/') /* Already in US format - return */
  3236.               return;
  3237.            if(datestring[2]=='.') /* If in European format, do conversion */
  3238.               {
  3239.               c=datestring[0];
  3240.               datestring[0]=datestring[3];
  3241.  
  3242.  
  3243.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3244.  
  3245.  
  3246.  
  3247.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-9
  3248.     Date Conversion Function (@D)
  3249.  
  3250.  
  3251.               datestring[3]=c;
  3252.               c=datestring[1];
  3253.               datestring[1]=datestring[4];
  3254.               datestring[4]=c;
  3255.               datestring[2]=datestring[5]='/';
  3256.               }
  3257.            }
  3258.  
  3259.         date2European(datestring) /* Converts European or US to European */
  3260.         char *datestring;
  3261.            {
  3262.            char c;
  3263.            if(datestring[2]=='.') /* Already in European format - return */
  3264.               return;
  3265.            if(datestring[2]=='/') /* If in US format, do conversion */
  3266.               {
  3267.               c=datestring[0];
  3268.               datestring[0]=datestring[3];
  3269.               datestring[3]=c;
  3270.               c=datestring[1];
  3271.               datestring[1]=datestring[4];
  3272.               datestring[4]=c;
  3273.               datestring[2]=datestring[5]='.';
  3274.               }
  3275.            }
  3276.  
  3277.     These routines are only examples, but are very fast because there's
  3278.     no function calls made and all we're doing is manipulating characters!
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3307.  
  3308.  
  3309.  
  3310.     Page  4-10              Customizing MAGNUM - Display Files/MILC Commands
  3311.                             External and RJE Program Execution Commands (@E)
  3312.  
  3313.  
  3314.                                    @E Command
  3315.  
  3316.     PURPOSE: Starts an External (child process or door), or RJE
  3317.              (independent process) program.
  3318.      FORMAT: @Ex
  3319.  
  3320.                                       @E0:
  3321.  
  3322.     @E0 - Executes an external program (without using the [D]oor menu).
  3323.           Works the same as [D]oors (child processes) - the external
  3324.           process being called must be in the EXTernal DIRectory. The
  3325.           variable @Z0 holds the program name, @Z1 holds any parameters
  3326.           needed by the program, @N0 tells how the pgm's I/O is to be
  3327.           handled. When the external program finishes executing, the
  3328.           result code of the program will be placed in MILC variable @N1.
  3329.           See CHILDREN.BBS in the "Creating Subdirectories" portion of
  3330.           the user's manual. See Chapter 2, CHILDREN.BBS of EXTERNAL
  3331.           DIRectory for more information.
  3332.  
  3333.           CAUTION: DO NOT ALLOW YOUR USERS ACCESS TO THIS COMMAND!! MAKE
  3334.                    SURE IT DOES NOT APPEAR IN THE "DISP_CMDS=" OF ANY
  3335.                    USER'S RECORD!! IF A USER HAS ACCESS TO THIS COMMAND,
  3336.                    THEY COULD TAKE CONTROL OF YOUR ENTIRE SYSTEM AND DO
  3337.                    ANYTHING THEY WANT!!
  3338.  
  3339.                                       @E1:
  3340.  
  3341.     @E1 - Similar to MILC variable @E0, except the process is started as
  3342.           an RJE task (detached and running in the background), and is
  3343.           expected to be found in your RJE DIRectory. The process must NOT
  3344.           read from stdin, or write to stdout or stderr (it actually
  3345.           can write to stdout/stderr but output will be lost!), and must
  3346.           NOT require any keyboard or mouse input or screen output
  3347.           (redirection of stdin, stdout and stderr is ok), otherwise all
  3348.           I/O should be to and from FILES only, not devices! If the print
  3349.           spooler is enabled, this is probably ok. As with the MILC @E0
  3350.           command, the required @Z0 and @Z1 parameters are the same, but
  3351.           the @N0 and @N1 parameters are different:
  3352.  
  3353.         @N0 should contain the Priority CLASS and LEVEL of the process:
  3354.  
  3355.           NO CHANGE IN CLASS:
  3356.  
  3357.               1 =  lowest priority level of the class
  3358.              31 = highest priority level of the class
  3359.  
  3360.           CLASS 1 (Idle Time)
  3361.  
  3362.             100 =  lowest priority level of "Idle" Class (class 1, level  0)
  3363.             131 = highest priority level of "Idle" Class (class 1, level 31)
  3364.  
  3365.           CLASS 2 (Regular)
  3366.  
  3367.  
  3368.  
  3369.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3370.  
  3371.  
  3372.  
  3373.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-11
  3374.     External and RJE Program Execution Commands (@E)
  3375.  
  3376.  
  3377.             200 =  lowest priority lvl of "Regular" Class (class 2, lvl  0)
  3378.             231 = highest priority lvl of "Regular" Class (class 2, lvl 31)
  3379.  
  3380.           CLASS 3 (Time Critical)
  3381.  
  3382.             300 =  lowest priority lvl of "Critical" Class (class 3, lvl  0)
  3383.             331 = highest priority lvl of "Critical" Class (class 3, lvl 31)
  3384.  
  3385.          For example, if you want your RJE program to run in the "Idle Time"
  3386.          class, with a priority level of 15 (the middle of the class), you
  3387.          would assign the value of 115 to variable @N1 as follows:
  3388.  
  3389.             @N0=115;
  3390.  
  3391.          If you don't want to bother with setting priority levels, simply
  3392.          assign an invalid number to variable @N0 (ie: @N0=99;), which will
  3393.          force Magnum to assume a default of 125 (class 1, level 25).
  3394.          Valid numbers are: 1 to 31, 100 to 131, 200 to 231, and 300 to 331.
  3395.  
  3396.          The contents of MILC variable @N1 tells Magnum whether to notify
  3397.          the user in the event the RJE job completes while they're still
  3398.          online. If @N1 is zero, no notification will take place, otherwise
  3399.          if @N1 is 1 (nonzero), Magnum will notify the user of the completed
  3400.          RJE job in the event that the job completes before the user's
  3401.          session is over.
  3402.  
  3403.          Once the process has been started, the values in MILC variables @Z1
  3404.          and @N1 will be overwritten with information about the RJE process.
  3405.          Variable @Z1 will contain a 10-character string which is the name
  3406.          Magnum assigns to the job, and variable @N1 will contain the
  3407.          process's PID (Process Identification as used by OS/2). If the PID
  3408.          (@N1) contains the value of 0 after starting the job, then this
  3409.          indicates that the job was unable to be started, otherwise if
  3410.          non-zero, the job started successfully.
  3411.  
  3412.                            NOTES ABOUT @Ex COMMANDS:
  3413.  
  3414.          In many cases, you'll want (or need) to run a .CMD file instead of
  3415.          a single .EXE program. In order to run .CMD files, you need to
  3416.          specify CMD.EXE as the program to run, and give it a parameter of
  3417.          "/c xxxxxxxx.cmd" (where 'xxxxxxxx' is the name of your .CMD file.
  3418.          For example, if you wanted to run a .CMD file called RUN.CMD, your
  3419.          @Zx MILC commands would be set up as follows:
  3420.  
  3421.               @z0="cmd.exe"; @z1="/c run.cmd";
  3422.  
  3423.          Of course, you could also have supplied parameters to pass to the
  3424.          .CMD file as well:
  3425.  
  3426.               @z0="cmd.exe"; @z1="/c run.cmd parm1 parm2";
  3427.  
  3428.          It's important to remember the "/c " as the first thing in the @z1
  3429.          string because it tells OS/2 to terminate the "cmd.exe" program
  3430.  
  3431.  
  3432.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3433.  
  3434.  
  3435.  
  3436.     Page  4-12              Customizing MAGNUM - Display Files/MILC Commands
  3437.                             External and RJE Program Execution Commands (@E)
  3438.  
  3439.  
  3440.          when your .CMD file finishes executing.
  3441.  
  3442.          *** IMPORTANT: IF YOU DON'T SUPPLY THE "/c " PARAMETER AS THE FIRST
  3443.                         THING IN @Z1 WHEN "CMD.EXE" IS THE PROGRAM IN @Z0,
  3444.                         THEN CMD.EXE WILL NOT END!!! THE REMOTE USER WILL
  3445.                         HAVE THE CMD.EXE COMMAND PROMPT (AND YOUR ENTIRE
  3446.                         SYSTEM) AVAILABLE FOR THEM TO DO WHATEVER THEY WANT!
  3447.  
  3448.  
  3449.           CAUTION: DO NOT ALLOW YOUR USERS ACCESS TO @Ex COMMANDS!! MAKE
  3450.                    SURE  E  DOES NOT APPEAR IN THE "DISP_CMDS=" OF ANY
  3451.                    USER'S RECORD!! IF A USER HAS ACCESS TO THIS COMMAND,
  3452.                    THEY COULD TAKE CONTROL OF YOUR ENTIRE SYSTEM AND DO
  3453.                    ANYTHING THEY WANT!!
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3496.  
  3497.  
  3498.  
  3499.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-13
  3500.     Miscellaneous @E commands
  3501.  
  3502.  
  3503.                            Miscellaneous @E commands
  3504.  
  3505.     PURPOSE: To perform certain functions which should only be available
  3506.              to the Sysop.
  3507.      FORMAT: @Ex
  3508.  
  3509.       @E2  - Send File. This command transmits a file that is NOT in the
  3510.              file database to the remote caller. @Z0 holds the filename.
  3511.              Upon return of the transmission, variable @N0 holds the result
  3512.              (1=success, 0=failure). If the user does not have a default
  3513.              file xfer protocol chosen, s/he will be prompted for one. The
  3514.              function also determines whether the caller is on remotely,
  3515.              locally or via pipe module and acts accordingly. This function
  3516.              provides a means of file xfer unrelated to the BBS.
  3517.              No upload/download ratios are checked, remaining time is not
  3518.              checked, the file is not counted as a download, etc.
  3519.              Example:
  3520.                          @Z0="d:\magnum\somefile.zip";
  3521.                          @E2
  3522.                          @B1(N0=1);
  3523.                          File Transmission Unsuccessful!
  3524.                          @C16
  3525.                          @P1 File Transmission Successful!
  3526.  
  3527.              For those Sysops who wish to "attach" a file to a message,
  3528.              this command will let you accomplish it.
  3529.  
  3530.       @E3  - Receive File. This command receives a file from the remote
  3531.              caller and does NOT update the file database. @Z0 holds the
  3532.              filename. Upon return of the function, variable @N0 holds the
  3533.              result (1=success, 0=failure). If the user does not have a
  3534.              default file xfer protocol chosen, s/he will be prompted for
  3535.              one. Note that if the file exists, the function will delete the
  3536.              file prior to receiving it. The function also deletes the file
  3537.              if the file transfer fails. The function also determines
  3538.              whether the caller is on remotely, locally or via pipe module
  3539.              and acts accordingly. This function provides a means of file
  3540.              xfer unrelated to the BBS. No upload credit is given, remaining
  3541.              time is not checked, the file is not integrity checked,
  3542.              upload/download ratio not adjusted, etc.
  3543.              Example:
  3544.                          @Z0="d:\magnum\somefile.zip";
  3545.                          @E3
  3546.                          @B1(N0=1);
  3547.                          File Reception Unsuccessful!
  3548.                          @C16
  3549.                          @P1 File Received Successfully!
  3550.  
  3551.       @E10 - Disable output. Suspend all output to modem or screen.
  3552.              All output sent following this command will be discarded
  3553.              (ignored) until the @E11 command is issued.
  3554.  
  3555.       @E11 - Enable output. Negates @E10, resumes output.
  3556.  
  3557.  
  3558.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3559.  
  3560.  
  3561.  
  3562.     Page  4-14              Customizing MAGNUM - Display Files/MILC Commands
  3563.                                                    Miscellaneous @E commands
  3564.  
  3565.  
  3566.  
  3567.       @E12 - Disable Timer. This command comes in handy when someone is
  3568.              about to run out of time on your system, and you want them to
  3569.              have more time. For example, suppose you run a subscription
  3570.              service or offer an 'online order' menu in which users can
  3571.              place credit card orders. We've seen users get logged off by
  3572.              Magnum because they ran out of time, yet they were in the
  3573.              middle of trying to place on online order! When you use the
  3574.              new @E12 command, this will no longer happen. The timer is
  3575.              temporarily suspended with this command, until you issue an
  3576.              @E13 command to reactivate the timer.
  3577.              NOTE: If you forget to negate this command with the @E13
  3578.                    command, the timer will not reactivate! Therefore,
  3579.                    we've built in a safety measure. If you use this
  3580.                    command, Magnum will automatically issue an @E13 command
  3581.                    internally after a period of 5 minutes.
  3582.  
  3583.       @E13 - Enable Timer. Negates @E12 (ie: re-activates timer).
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3622.  
  3623.  
  3624.  
  3625.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-15
  3626.     Additional @E commands for 'Extended FileBase and MsgBase'
  3627.  
  3628.  
  3629.            Additional @E commands for 'Extended FileBase and MsgBase'
  3630.  
  3631.     PURPOSE: To provide processing power for those Sysops using optional
  3632.              'Extended FileBase' and/or 'Extended MessageBase' modules.
  3633.      FORMAT: @Ex
  3634.  
  3635.       @E80 - Prompts User to choose new FileBase (0-255). New FileBase
  3636.              chosen is also returned in @N0;. Requires 'Extended FileBase'.
  3637.  
  3638.       @E81 - Changes FileBase to value (0-255) in @N1;. New FileBase is
  3639.              also returned in @N0;. At the end of the @E81 command, if
  3640.              variables @N0 and @N1 are equal, no change took place.
  3641.              Requires 'Extended FileBase'.
  3642.  
  3643.       @E82 - Prompts User to choose new MsgBase (0-255). New MsgBase
  3644.              chosen is also returned in @N0;. Requires 'Extended MsgBase'.
  3645.              NOTE: This command is ignored if part of a Message!
  3646.  
  3647.       @E83 - Changes MsgBase to value (0-255) in @N1;. New MsgBase is
  3648.              also returned in @N0;. At the end of the @E83 command, if
  3649.              variables @N0 and @N1 are equal, no change took place.
  3650.              Requires 'Extended MsgBase'.
  3651.              NOTE: This command is ignored if part of a Message!
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3685.  
  3686.  
  3687.  
  3688.     Page  4-16              Customizing MAGNUM - Display Files/MILC Commands
  3689.                                                   Include File Commands (@I)
  3690.  
  3691.  
  3692.                                    @I Command
  3693.  
  3694.     PURPOSE: Includes (displays/processes) another display file within the
  3695.              current display file.
  3696.      FORMAT: @Ix"d:\path\filespec"  |  @Ix@Zy
  3697.  
  3698.     The  INCLUDE  command simply  halts  display of the currently displaying
  3699.     file, processes  the 'included'  file (and  any 'included'  files it may
  3700.     have), then returns  to either continue  displaying the current  file or
  3701.     ending the display of the current file, depending on parameter 'x'.
  3702.  
  3703.     'x' can be one of 0 to 4:
  3704.  
  3705.         0 = Terminate the current file after the include. Inheritance OFF.
  3706.         1 = Continue  the current file after the include. Inheritance OFF.
  3707.         2 = Terminate the current file after the include. Inheritance ON.
  3708.         3 = Continue  the current file after the include. Inheritance ON.
  3709.         4 = Same as 3 but the alterations to @Zx and @Nx variables by the
  3710.             'included' file will remain upon return.
  3711.  
  3712.     Inheritance  OFF  means  that  the  included  file will have its own @Nx
  3713.     (numeric) and  @Zx (string)  variables.   Inheritance ON  means that the
  3714.     included file will inherit the @Nx and @Zx variables of the calling file
  3715.     - upon return  to the calling  file, the @Nx  and @Zx variables  will be
  3716.     restored  to  where  they  were  prior  to  the  'include' if 'x' was 3,
  3717.     otherwise  if  'x'  was  4,  the  @Nx  and @Zx variables will retain any
  3718.     changes made by the 'included' file.
  3719.  
  3720.     NOTE: Please have a thorough understanding of the @N and @Z commands
  3721.           before continuing!
  3722.  
  3723.     This powerful command is the entire basis for Bulletins, Questionairres,
  3724.     Newsletters or  any other  kind of  file offering  a menu.   An  example
  3725.     Bulletin file (BULLETIN.BBS or  BULLETIN.SCR) might look something  like
  3726.     this:
  3727.  
  3728.               @P30  @c8
  3729.                                              @a14BULLETIN MAIN MENU@a10
  3730.  
  3731.  
  3732.                 1 - What is MAGNUM BBS and who is Gilmore Systems, anyway?
  3733.  
  3734.                 2 - WOW! How can I get a copy of MAGNUM, What's the price?
  3735.  
  3736.                 3 - Info about becoming a purchasing MAGNUM BBS software.
  3737.  
  3738.                 Q - Quit - return to BBS
  3739.  
  3740.               Choice => @z0('123Q');
  3741.               @b1(z0="Q");
  3742.               @z1=("c:\gs\com\1\bul_dir\bullet"+z0); @i1@z1 @b30(0=0);
  3743.               @P1
  3744.  
  3745.  
  3746.  
  3747.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3748.  
  3749.  
  3750.  
  3751.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-17
  3752.     Include File Commands (@I)
  3753.  
  3754.  
  3755.     The file works like this:  The @P30 defines a label.  The @C8 resets the
  3756.     line counter (for the -More- prompt).  The @A14 and @A10 commands change
  3757.     the color.  All text is displayed.  After "Choice => " is displayed, the
  3758.     @Z0 command restricts the user to choose one of 1,2,3 or Q. If the  user
  3759.     chose  Q,  a  branch  is  made  to  @P1  which  is  the end of the file.
  3760.     Otherwise,  no  branch  is  made  and  string variable @Z1 is assigned a
  3761.     partial  filespec  to  which  the  user's  choice  ("1", "2", or "3") is
  3762.     concatenated  (if  the  user  chose  "2"  for example, @Z1 would contain
  3763.     "C:\GS\COM\1\BUL_DIR\BULLET2").   The next  command 'includes'  the file
  3764.     named in variable  @Z1 without inheritance  and continues with  the next
  3765.     instruction after the 'included' file is finished displaying.  The  next
  3766.     instruction unconditionally branches  to label @P30  to start the  whole
  3767.     process over again.
  3768.  
  3769.     The above example used  a @Zx (string) variable  to contain the name  of
  3770.     the file to be 'included'.  Note that for less sophisticated menus,  you
  3771.     could 'hard-code' the filename within quotes:
  3772.  
  3773.             @I0"c:\gs\com\1\bul_dir\bullet2"
  3774.     or
  3775.             @I0"c:\gs\com\1\bul_dir\bullet2.bbs".
  3776.  
  3777.     NOTES:  1) The variable @Z1 purposely was not given a filename
  3778.                extension. When no filename extension is given, the 'include'
  3779.                command will first look for the filename with an extension of
  3780.                ".SCR" if the user's color settings are set to YES. If not
  3781.                found, or if the user's color settings are set to NO, then it
  3782.                will look for the filename with an extension of ".BBS". If
  3783.                neither is found, the 'include' ends, returning back to the
  3784.                calling file.
  3785.  
  3786.             2) DO NOT go beyond 3 to 4 levels of includes. In other words,
  3787.                for maximum safety, File A can include file B, which includes
  3788.                file C, which includes file D. Do not go beyond this point to
  3789.                a file E!
  3790.  
  3791.             3) Note that unlike other '@' commands, when a @Zx variable
  3792.                contains the name of an 'included' file, the '@' (or current
  3793.                command character) is needed. In other words, @I1@Z4 is
  3794.                correct, while @I1Z4 is incorrect.
  3795.  
  3796.     With the power  of the @I  command, menus and  submenus can be  built to
  3797.     form a sophisticated Bulletin menu/system, Questionairre menu/system  or
  3798.     Newsletter menu/system.  When a caller logs on, the system will check to
  3799.     see  if  either  BULLETIN.SCR  (or  BULLETIN.BBS),  and  NEWSLTR.SCR (or
  3800.     NEWSLTR.BBS) has a filedate later than the caller's last call.  If true,
  3801.     the system will advise the caller that BULLETIN(s) or NEWSLETTER(s) have
  3802.     been updated since their last call (giving dates and times of  updates).
  3803.     So remember that if  you make a change  to any of the  'included' files,
  3804.     you  must  change  the  date  of  the BULLETIN.SCR (or BULLETIN.BBS), or
  3805.     NEWSLTR.SCR (or NEWSLTR.BBS).
  3806.  
  3807.  
  3808.  
  3809.  
  3810.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3811.  
  3812.  
  3813.  
  3814.     Page  4-18              Customizing MAGNUM - Display Files/MILC Commands
  3815.                                       Date Manipulation Commands (@J and @Y)
  3816.  
  3817.  
  3818.                                @J and @Y Commands
  3819.  
  3820.     PURPOSE: Converts dates to and from string format (MM/DD/YYYY or
  3821.              DD.MM.YYYY) to numeric format NNNNNNNN
  3822.     FORMAT:  @Jx or @Yx
  3823.              where 'x' references a @Zx variable.
  3824.  
  3825.     @Jx  - Converts a date (MM/DD/YYYY or DD.MM.YYYY) stored in variable
  3826.            @Zx to a numeric string representing the number of days from
  3827.            01/01/1900 (01.01.1900). For Example, if the date in @Z5 contains
  3828.            "06/01/1989", then issuing @J5 would overwrite the equivalent
  3829.            number of days between 01/01/1900 and 06/01/1989 in @Z5. Variable
  3830.            @Z5 can then be assigned to a numeric variable (@Nx) for further
  3831.            manipulation.  The date string in @Zx prior to calling the @Jx
  3832.            function can be stored in either US or European format and can
  3833.            be in the short form (ie: 1/6 or 6.1 or 1/6/2). Note that if the
  3834.            date string is in error, the function will overwrite the @Zx
  3835.            variable with the numeric string "0" (without the quotes).
  3836.            The following example of using the @Jx variable demonstrates how
  3837.            it could be put to use on a subscription BBS which relies on the
  3838.            MEMODATE2 field:
  3839.                             @z1=o17;       @c3 Get Today's date @c4
  3840.                             @z2=u23;       @c3 Get User's MEMODATE2 @c4
  3841.                             @j1 @j2 @n1=z1; @n2=z2; @n0=(n2-n1);
  3842.                             Your subscription expires in @n0; days!
  3843.  
  3844.     @Yx  - The opposite of @Jx. Converts a numeric string stored in variable
  3845.            @Zx, overwriting the @Zx variable with the date in MM/DD/YYYY or
  3846.            DD.MM.YYYY format depending on the users dateformat setting. Note
  3847.            that if the value in the @Zx variable is in error (ie: a negative
  3848.            number), the @Zx string will be overwritten with 01/01/1900 (or
  3849.            01.01.1900 depending on the user's dateformat setting).
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3874.  
  3875.  
  3876.  
  3877.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-19
  3878.     Call Command (@K)
  3879.  
  3880.  
  3881.                                    @K Command
  3882.  
  3883.     PURPOSE: Calls a routine located at label @Px. Returns to area following
  3884.              the call upon a return (@#) instruction.
  3885.      FORMAT: @K(exp);
  3886.  
  3887.       @K(exp); - Same as @B(exp); but Kalls (calls) the part of the file
  3888.                  identified by a @Px label. The result is identical to the
  3889.                  @B(exp) command, but the return address is saved on an
  3890.                  internal stack. To return back to the position after the
  3891.                  @K(exp); is issued, issue the new MILC command @# to
  3892.                  signify a return command.
  3893.  
  3894.                  Example:
  3895.  
  3896.                      @B1;                  unconditional branch to @P1
  3897.                      .
  3898.                      .
  3899.                      @P5                   Label (signifies branch address)
  3900.                      .
  3901.                      .
  3902.                      .
  3903.                      @#                    Branch back to caller if called
  3904.                      .                     by a @K(exp) command.
  3905.                      .
  3906.                      @P1
  3907.                      .
  3908.                      .
  3909.                      @K5;                  Branch (Kall) code at @P5
  3910.                      .                     Return to next instruction (here)
  3911.                      .                     when done
  3912.  
  3913.                   Kalls (calls) can be nested up to 50 levels.
  3914.  
  3915.         The MILC command @# ends the call, and returns processing back to
  3916.         the place in the file immediately preceeding the @K(exp); command.
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.  
  3936.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  3937.  
  3938.  
  3939.  
  3940.     Page  4-20              Customizing MAGNUM - Display Files/MILC Commands
  3941.                                                 Security Level Commands (@L)
  3942.  
  3943.  
  3944.  
  3945.                                    @L Command
  3946.  
  3947.     PURPOSE: Processes all following text and commands for a specific
  3948.              security level only.
  3949.      FORMAT: @Lx
  3950.              where 'x' is a security level
  3951.  
  3952.     The @Lx command allows  text/commands to be displayed/processed  only if
  3953.     the remote user viewing the file has a security level equal to 'x'.  The
  3954.     command @L10  for example,  activates this  feature such  that the  file
  3955.     display functions  will only  display text  and process  commands if the
  3956.     current user has a security level of  10.  For Users at higher or  lower
  3957.     levels, the command will act identically to the @C3 command.  This  will
  3958.     continue until another @Lx command is issued, which changes the security
  3959.     level again.
  3960.  
  3961.     To revert back to normal processing, the command @L0 will negate the @Lx
  3962.     command.
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972.  
  3973.  
  3974.  
  3975.  
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996.  
  3997.  
  3998.  
  3999.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4000.  
  4001.  
  4002.  
  4003.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-21
  4004.     Match Filename in FILE DATAbase (@M) command
  4005.  
  4006.  
  4007.  
  4008.                                    @M Command
  4009.  
  4010.     PURPOSE: Matches a Filename in the FILE DATAbase in preparation for
  4011.              external protocol(s).
  4012.     FORMAT:  @Mx
  4013.              where 'x' references a @Zx variable.
  4014.  
  4015.     @Mx  - Match filename in the FILE database. In preparation for external
  4016.            protocols, if a filename is in variable @Zx, the @Mx command will
  4017.            return the complete filespec (drive,path,filename,ext) in @Zx.
  4018.            For example, if the filename MAGNUM2.ZIP is in variable @Z5, then
  4019.            @M5 would overwrite @Z5 with D:\MAGNUM\GILMORE\MAGNUM2.ZIP or
  4020.            whatever the matching filespec would be for the file. If the
  4021.            filename is not found, or the filename is in a file area
  4022.            inaccessible to the user, then @Z5 will be null upon return from
  4023.            the @M5 function. If the filename is password protected, the user
  4024.            will be prompted for the password - if the password is wrong, the
  4025.            @Z5 variable will become null.
  4026.            If the value of x for @Mx is >= 40, then the following format is
  4027.            returned in variable @Zx:
  4028.  
  4029.                d:\path\filename[.ext]  nnnnnn  mm/dd/yyyy
  4030.                          |               |        |_______ file date
  4031.                          |               |________________ file size
  4032.                          |________________________________ filespec
  4033.  
  4034.            otherwise, if the value of x for @Mx is < 40, then the following
  4035.            format is returned in variable @Zx:
  4036.  
  4037.                d:\path\filename[.ext]
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4063.  
  4064.  
  4065.  
  4066.     Page  4-22              Customizing MAGNUM - Display Files/MILC Commands
  4067.                            Numeric (@N) Commands (ie: mathematics, I/O, etc)
  4068.  
  4069.  
  4070.  
  4071.                                       @N Command
  4072.  
  4073.     PURPOSE: Numeric variable command. Performs arithmetic functions, screen
  4074.              I/O, and file writes.
  4075.     FORMATs: @Nx;             Prints contents of @Nx
  4076.              @Nx=Ny;          Assigns contents of @Ny to @Nx
  4077.              @Nx=y;           Assigns a value to @Nx (ie: @N1=12;)
  4078.              @Nx(a,b);        Assigns remote user's input to @Nx
  4079.              @Nx=Zy;          Converts string variable @Zy to numeric,
  4080.                                assign to @Nx
  4081.              @Nx=(EXP);       Performs a mathematical expression
  4082.              @Nx("string");   Writes "string" to disk, followed by contents
  4083.                                of @Nx
  4084.  
  4085.          where 'x' is the variable identifier (0 to 99), 'a' and 'b' are
  4086.          numbers, EXP is an arithmetic expression, "string" is a character
  4087.          string, 'y' is a number.
  4088.  
  4089.     The @Nx  command is  a very  powerful command  in that  it performs many
  4090.     different tasks.  It  is capable of user  input, screen or file  output,
  4091.     performing arithmetic expressions, conversion of @Zx (string)  variables
  4092.     to numeric, etc.
  4093.  
  4094.     There are 100 different  numeric variables available (identified  as @N0
  4095.     to @N99).  Each one of these  is unique, and is capable of doing  32-bit
  4096.     arithmetic (long integers).  This means that values can range from minus
  4097.     2 billion something to plus 2  billion something.  That's a fairly  wide
  4098.     range.  Note that floating point is NOT supported since it would take up
  4099.     too much program space and require  too much processing time.  You  can,
  4100.     however make it appear as though floating point is supported by using  a
  4101.     technique called scaling.   It is beyond the  scope of this document  to
  4102.     cover  scaling  techniques,  but  if  you  are familiar with scaling you
  4103.     should have no problems.
  4104.  
  4105.     Note that all @N commands must end with the ';' (semicolon) character!
  4106.  
  4107.     Let's go through the different capabilities:
  4108.  
  4109.     DISPLAY THE CONTENTS OF A NUMERIC VARIABLE:
  4110.  
  4111.        This is the simplest form of the @N commands. Simply "@Nx;" (without
  4112.        quotes) where 'x' is the numeric variable (0 to 99) that you wish the
  4113.        contents displayed. If @N5 had the value 2005 in it, then the command
  4114.  
  4115.              @N5;
  4116.  
  4117.        embedded anywhere within the file will display "2005" (without
  4118.        quotes) on the remote user's screen.
  4119.  
  4120.     ASSIGNMENT TO A NUMERIC VARIABLE:
  4121.  
  4122.        This is the next simplest form of the @N command. Let's suppose that
  4123.  
  4124.  
  4125.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4126.  
  4127.  
  4128.  
  4129.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-23
  4130.     Numeric (@N) Commands (ie: mathematics, I/O, etc)
  4131.  
  4132.  
  4133.        the numeric variable @N4 had the value 250:
  4134.  
  4135.             @N1=N4;      @N2=12;
  4136.  
  4137.        In the above two examples, the contents of @N4 (which we said was
  4138.        250) is assigned to @N1, therefore @N1 and @N4 now both hold the
  4139.        value 250. In the @N2 assignment, the value 12 is being assigned
  4140.        to @N2.
  4141.  
  4142.     GETTING REMOTE USER's NUMERIC INPUT:
  4143.  
  4144.        The @N command can also ask the remote user to input a number. The
  4145.        format of this form of the @N command is:
  4146.  
  4147.                      @Nx(a,b);
  4148.  
  4149.        where 'x' (as usual) represents which N variable you want (0 to 99),
  4150.        and 'a' and 'b' represent the allowable range of numbers the user can
  4151.        enter. For example:
  4152.  
  4153.               Please Enter Your Age => @N1(5,120);
  4154.  
  4155.        This would print "Please Enter Your Age => " and wait for the user to
  4156.        enter a numeric response. Once the user enters their response, it is
  4157.        checked to see if it falls within the range of 5 to 120 (inclusive)
  4158.        and if it does, it assigns their answer to variable @N1. If it does
  4159.        not fall within the accepted range, a beep is emitted on the remote
  4160.        user's terminal and they are required to re-enter their answer. The
  4161.        display of the file will not continue until the remote user has
  4162.        entered an acceptable number.
  4163.  
  4164.     CONVERTING A STRING VARIABLE (@Zx) TO NUMERIC:
  4165.  
  4166.        The @Nx command is capable of converting a string variable to
  4167.        numeric, provided that the string variable consists of digits. If it
  4168.        does not consist of digits, the value 0 will be assigned to the
  4169.        numeric variable. Note that a numeric string of "0" and "John" will
  4170.        both result in the @Nx variable being assigned the value of 0. Some
  4171.        examples follow:
  4172.  
  4173.               @Z5="365";  @N2=Z5;  @N2;
  4174.  
  4175.        In the above example, the string variable @Z5 is assigned the string
  4176.        "365". The next statement - @N2=Z5; - converts the string "365" to
  4177.        numeric and assigns the result in @N2. The next statement displays
  4178.        the value of @N2 which is 365.
  4179.  
  4180.     PERFORMING MATHEMATICS:
  4181.  
  4182.        And now for the real power of the @Nx command - mathematics!
  4183.        An example follows:
  4184.  
  4185.               @N5=365;  @N4=(N5/7);  There are @N4; weeks in a year.
  4186.  
  4187.  
  4188.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4189.  
  4190.  
  4191.  
  4192.     Page  4-24              Customizing MAGNUM - Display Files/MILC Commands
  4193.                            Numeric (@N) Commands (ie: mathematics, I/O, etc)
  4194.  
  4195.  
  4196.  
  4197.        In the above example, @N5 is assigned the value 365. Next, @N4 is
  4198.        assigned the result of the expression (N5/7) which is identical to
  4199.        365/7, yielding a result of 52. Then "There are 52 weeks in a year."
  4200.        is displayed. As mentioned earlier, floating point is not supported.
  4201.        Therefore, the result of 365/7 is 52 (not 52.14286) - the decimal
  4202.        portion is simply truncated (dropped) - not rounded.
  4203.  
  4204.        The format @Nx=(EXP); for the (EXP) part must follow 3 rules:
  4205.  
  4206.               The expression must be enclosed in parenthesis.
  4207.               The first parameter MUST be a @N variable.
  4208.               The second parameter can be either a @N variable or number.
  4209.  
  4210.        In other words, @N5=(N10+12);  is correct.
  4211.                        @N5=(N10+N30); is correct.
  4212.                        @N5=(45+N3);   is incorrect.
  4213.                        @N5=(45+70);   is incorrect.
  4214.  
  4215.        As always, note the lack of any spaces, and the terminating ';'.
  4216.        The operation to be performed in the EXP part of the example can be
  4217.        one of:
  4218.  
  4219.                +    addition
  4220.                -    subtraction
  4221.                *    multiplication
  4222.                /    division
  4223.                %    modulus (remainder)
  4224.                ^    XOR (bitwise exlusive or)
  4225.                |    OR  (bitwise OR)
  4226.                &    AND (bitwise AND)
  4227.  
  4228.        Most of you will be using the first 4 operations. The next 4
  4229.        (%,^,|,&) are beyond the scope of this document, therefore - if you
  4230.        are not familiar with what a modulus, XOR, OR, or AND are then you
  4231.        will have no need for them anyway.
  4232.  
  4233.     WRITING THE @Nx VARIABLE TO DISK:
  4234.  
  4235.        With all the power of the @Nx command, it would certainly be a shame
  4236.        if there were no way to write the contents of some of the variables
  4237.        to disk. This is handy with such files as Questionairres. To write
  4238.        the contents of a @Nx variable to disk, simply:
  4239.  
  4240.                @N5("Total Price: $");
  4241.  
  4242.        Assuming @N5 had the value 500. The above statement would write the
  4243.        following line to a disk file:
  4244.  
  4245.                Total Price: $500
  4246.  
  4247.        Another example might be:
  4248.  
  4249.  
  4250.  
  4251.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4252.  
  4253.  
  4254.  
  4255.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-25
  4256.     Numeric (@N) Commands (ie: mathematics, I/O, etc)
  4257.  
  4258.  
  4259.                @Z1=O10; @N1=Z1; @N2=72; @N1(N2-N1);
  4260.                @N1("Years left for average life expectancy: ");
  4261.  
  4262.        Assuming the user's age is 25, we place the user's age (see @O
  4263.        command) in the variable @Z1. Next, we assign the numeric equivalent
  4264.        to numeric variable @N1. Numeric variable @N2 is assigned the value
  4265.        72. We then assign to @N1 the result of the expression (N2-N1) or
  4266.        72-25. The following line then gets printed to disk:
  4267.  
  4268.                Years left for average life expectancy: 47
  4269.  
  4270.        Which file does it write to? Whatever file is currently being
  4271.        displayed, the output file will have the same name but with an
  4272.        extension of ".R??", where the "??" will be replaced with the com
  4273.        port number the user is logged on to. The output file will always be
  4274.        placed in the SYSOUT directory. So if the user was displaying
  4275.                            "c:\gs\com\1\bul_dir\ques1"
  4276.                         or "c:\gs\com\1\bul_dir\ques1.bbs"
  4277.                         or "c:\gs\com\1\bul_dir\ques1.scr"
  4278.        the output file will be "ques1.r01" if the user is on com port 1,
  4279.                                "ques1.r02" if the user is on com port 2, etc
  4280.        the output file will always be placed in the SYSOUT DIRECTORY. The
  4281.        'R' in ".R01", ".R02", etc stands for "Response" since we are
  4282.        normally writing the user's responses to the output file.
  4283.  
  4284.        We used the above example file names since they are all the same -
  4285.        the extension simply gets stripped off, and replaced with the ".R??"
  4286.        extension (as explained above), while the path is changed to point to
  4287.        the session directory. It's that simple!
  4288.  
  4289.        Note that if the response file does not exist, it will be created. If
  4290.        the response file already exists, it will be appended to.
  4291.  
  4292.        How do we know which user was online at the time we wrote the answers
  4293.        to the disk file? When the very first response gets written to the
  4294.        response file, the system will write the user's name, id number,
  4295.        date, time and some other info to the file before writing the
  4296.        response to the file.
  4297.  
  4298.     AN EXAMPLE QUESTIONAIRRE FILE:
  4299.  
  4300.                         Questionairre #2 - Fictitious credit card order
  4301.  
  4302.         @P1 1) Credit Card # => @Z0(20);
  4303.  
  4304.         @P2 2) Purchase of: A) 20 Mb Hard Disk    ($100)
  4305.                          B) 2400 baud modem    ($ 95)
  4306.                          C) Personal Computer  ($900)
  4307.                          D) MBBS for OS/2      ($400)
  4308.  
  4309.                     Choice (A, B, C or D) => @Z1('ABCD');
  4310.                     @b40(Z1="A"); @b41(Z1="B"); @b42(Z1="C"); @b43(Z1="D");
  4311.  
  4312.  
  4313.  
  4314.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4315.  
  4316.  
  4317.  
  4318.     Page  4-26              Customizing MAGNUM - Display Files/MILC Commands
  4319.                            Numeric (@N) Commands (ie: mathematics, I/O, etc)
  4320.  
  4321.  
  4322.         @P3    Your order for $@n1;.00 + $10.00 for shipping/handling comes
  4323.             to a grand total of @n2=(n1+10);$@n2;.00
  4324.  
  4325.         Is all of the above information correct (Y/N) => @Z2('yn');
  4326.         @B1(Z2="N");
  4327.         @Z0("Credit Card # "); @Z3("Purchased: "); @N2("Total Price: $");
  4328.         @b49(0=0);
  4329.  
  4330.         @p40 @n1=100; @Z3="20 Mb Hard Disk"; @b3(0=0);
  4331.         @p41 @n1=95;  @Z3="2400 baud modem"; @b3(0=0);
  4332.         @p42 @n1=900; @Z3="Personal Computer"; @b3(0=0);
  4333.         @p43 @n1=400; @Z3="MBBS for OS/2"; @b3(0=0);
  4334.  
  4335.         @p49 Thank you for your order, @u3
  4336.          We'll be sending that off to:
  4337.  
  4338.               @u3 @u4 @u2
  4339.               @u6
  4340.               @u7
  4341.               @u8, @u9, @u10
  4342.               @u11
  4343.         @c9
  4344.  
  4345.        Assuming "ques2.bbs" is the questionnaire, and the user on node 1
  4346.        completed it, the response file "ques2.r01" will be logged in the
  4347.        SYSOUT directory. A typical might look like the following:
  4348.  
  4349.               ------------------------------------------------------------
  4350.               **** USER: JOE S USER
  4351.               ****** ID: "/3"   AGE: 36
  4352.               **** FROM: self
  4353.                          123 Sesame St.
  4354.                          Los Angeles, CA 90067 - USA
  4355.               ** PHONE1: 213-555-2125    PHONE2: 213-555-1900 ext 25
  4356.               * * * ANSWERS LOGGED AT 18:43 on Thursday, 13 April 1989
  4357.  
  4358.               Credit Card # 1234-123-123-123
  4359.               Purchased: MBBS for OS/2
  4360.               Total Price: $410
  4361.               ------------------------------------------------------------
  4362.               **** USER: JOHN K DOE
  4363.               ****** ID: "/248"   AGE: 22
  4364.               **** FROM: Unlimited Products, Inc.
  4365.                          24 Tower Drive, Suite 135
  4366.                          Chicago, IL 60601 - USA
  4367.               ** PHONE1: (312) 555-4321    PHONE2: (312) 555-1234
  4368.               * * * ANSWERS LOGGED AT 20:02 on Thursday, 13 April 1989
  4369.  
  4370.               Credit Card # 1234-5678-9012-3456
  4371.               Purchased: 2400 baud modem
  4372.               Total Price: $105
  4373.  
  4374.  
  4375.  
  4376.  
  4377.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4378.  
  4379.  
  4380.  
  4381.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-27
  4382.     Other (Miscellaneous) Commands (@O)
  4383.  
  4384.  
  4385.  
  4386.                                       @O Command
  4387.  
  4388.     PURPOSE: 'OTHER' (miscellaneous) information will display about the
  4389.              system date and time, and other miscellaneous information.
  4390.      FORMAT: @Ox
  4391.              where 'x' is the parameter (a number) representing what to
  4392.              display.
  4393.  
  4394.     The command  @Ox in  a display  file will  be replaced  with information
  4395.     about the system date, time or other miscellaneous information depending
  4396.     on the value of the 'x' parameter.
  4397.  
  4398.     The 'x' parameter can range from 0 to 21 as follows:
  4399.  
  4400.              @O0  - Hours (ranges from 00 to 23)
  4401.  
  4402.              @O1  - Minutes (ranges from 00 to 59)
  4403.  
  4404.              @O2  - Seconds (ranges from 00 to 59)
  4405.  
  4406.              @O3  - Hundredths of seconds (ranges from 00 to 99)
  4407.  
  4408.              @O4  - Day of month (ranges from 00 to 31)
  4409.  
  4410.              @O5  - Month (ranges from 01 to 12)
  4411.  
  4412.              @O6  - Year (the current 4-digit year)
  4413.  
  4414.              @O7  - Day of week (string: "Sunday", "Monday", etc)
  4415.  
  4416.              @O8  - Month (string: "January", "February", etc)
  4417.  
  4418.              @O9  - Time (string: "3:57 PM", "12:01 AM", etc)
  4419.  
  4420.              @O10 - User's age
  4421.  
  4422.              @O11 - Minutes user has been online this call
  4423.  
  4424.              @O12 - NODE # user is on
  4425.  
  4426.              @O13 - Total calls received on PORT #
  4427.  
  4428.              @O14 - Previous caller's name (up to 62 chars)
  4429.  
  4430.              @O15 - Previous caller's location (up to 62 chars)
  4431.  
  4432.              @O16 - Magnum Version Number (up to 9 chars)
  4433.  
  4434.              @O17 - Current date in either MM/DD/YYYY or DD.MM.YYYY format
  4435.                     depending on the user's dateformat setting.
  4436.  
  4437.              @O18 - Used for creating a random 8-digit string. This is
  4438.  
  4439.  
  4440.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4441.  
  4442.  
  4443.  
  4444.     Page  4-28              Customizing MAGNUM - Display Files/MILC Commands
  4445.                                          Other (Miscellaneous) Commands (@O)
  4446.  
  4447.  
  4448.                     related to RJE programs, such that if someone starts the
  4449.                     same RJE program more than once, you don't want it
  4450.                     writing its output to the same filename every time. This
  4451.                     command provides a unique way of creating a filename
  4452.                     which is unique (less the extension) to pass to RJE or
  4453.                     other programs external to Magnum requiring an output
  4454.                     filename to write to.
  4455.  
  4456.                     Example:
  4457.  
  4458.                        @z0="pgmname.exe"; @z1=o18; @z1=(z1+".txt"); @e1
  4459.  
  4460.                     The string returned is time-dependent. It consists of:
  4461.  
  4462.                        HHMMSShh
  4463.  
  4464.                     where:
  4465.  
  4466.                        HH = current hour of current day
  4467.                        MM = current minute of current day
  4468.                        SS = current seconds of current day
  4469.                        hh = current hundredths of seconds of current day
  4470.  
  4471.                     @z1=o18;
  4472.  
  4473.                     is identical to doing the following:
  4474.  
  4475.                        @z1=z0; @z2=o1; @z1=(z1+z2); @z2=o2; @z1=(z1+z2);
  4476.                        @z2=o3; @z1=(z1+z2);
  4477.  
  4478.  
  4479.              @O19 - Logon type:
  4480.  
  4481.                       L = Local Logon  (keyboard/console or local logon
  4482.                           module)
  4483.                       R = Remote Logon (modem)
  4484.                      PF = Pipe in Full Duplex (OS/2 workstation)
  4485.                      PH = Pipe in Half Duplex (DOS workstation)
  4486.  
  4487.                  Half duplex pipes have the following restrictions:
  4488.  
  4489.                     - Cannot stop displays with <Ctrl-X> or <SpaceBar>
  4490.                     - Cannot run interactive child (door) programs unless
  4491.                       those programs conform to Magnum's duplex-switching
  4492.                       scheme (contact Gilmore Systems for more information).
  4493.                     - Chat mode not allowed.
  4494.  
  4495.              @O20 - The 10-digit Serial Number of Magnum for THIS machine.
  4496.  
  4497.              @O21 - The 10-digit Parent Serial Number of Magnum.
  4498.  
  4499.              @O22 - "TRUE" or "FALSE" (without the quotes) if the
  4500.                     system has the 'Extended FileBase' option.
  4501.  
  4502.  
  4503.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4504.  
  4505.  
  4506.  
  4507.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-29
  4508.     Other (Miscellaneous) Commands (@O)
  4509.  
  4510.  
  4511.  
  4512.              @O23 - "TRUE" or "FALSE" (without the quotes) if the
  4513.                     system has the 'Extended MsgBase' option.
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.  
  4563.  
  4564.  
  4565.  
  4566.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4567.  
  4568.  
  4569.  
  4570.     Page  4-30              Customizing MAGNUM - Display Files/MILC Commands
  4571.                                               Position (Label) Commands (@P)
  4572.  
  4573.  
  4574.  
  4575.                                       @P Command
  4576.  
  4577.     PURPOSE: Defines a POSITION (LABEL) in a file to be a target for a
  4578.              BRANCH command.
  4579.      FORMAT: @Px
  4580.              where 'x' is the label number.
  4581.  
  4582.     The POSITION (or LABEL) command simply marks a place in the display file
  4583.     for later use as a target for a BRANCH instruction.  'x' can range  from
  4584.     0 to 99.
  4585.  
  4586.     See the @B command for examples.
  4587.  
  4588.     NOTE: 'x' must fall within the range of 0 to 99.
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.  
  4629.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4630.  
  4631.  
  4632.  
  4633.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-31
  4634.     Retain (@R), File (@F) and Query (@Q) MILC Variables @Z & @N
  4635.  
  4636.  
  4637.  
  4638.                                    @R Command
  4639.  
  4640.     PURPOSE: To retain the values of all @Zx and @Nx MILC variables such
  4641.              that they can be used by other files. (IE: MAKES @Zx and @Nx
  4642.              variables GLOBAL).
  4643.     @FORMAT: @Rx
  4644.              where 'x' is one of 0 or 1 as follows:
  4645.  
  4646.           @R1 - retain contents of @Zx and @Nx variables after file display.
  4647.           @R0 - do not retain contents of @Zx and @Nx variables (default).
  4648.  
  4649.     Whenever  the  display  routines  come  across  the @R1 command within a
  4650.     display file, the @Nx  and @Zx variables will  be retained.  This  means
  4651.     that any subsequent  display file can  use the previously  stored values
  4652.     stored within these  variables.  Note  that the use  of @R1 makes  these
  4653.     variables global, so if one display routine changes the contents of  any
  4654.     given variable, all subsequent display  routines will find the value  to
  4655.     be that  of the  most recent  assignment statement  to the  variable(s).
  4656.     Note that the @Ix command ("include") will remain unaffected by the  @R1
  4657.     command.
  4658.  
  4659.     To negate  the @R1  command, simply  issue a  @R0 command  and the  file
  4660.     display routines will return to the  normal way in which Magnum used  to
  4661.     process its MILC commands.
  4662.  
  4663.     When the display file routine  starts, it initializes all @Zx  variables
  4664.     and to nul (""),  and all @Nx variables  to zeros (0).   The @R1 command
  4665.     merely tells the file display routine not to do this for all  subsequent
  4666.     file displays.  The @R0  command negates this, causing the  file display
  4667.     routines to reinitialize all @Zx and @Nx variables.
  4668.  
  4669.     CAUTION: User messages (in the message section) will result in the
  4670.              @Nx and @Zx variables not being initialized (ie: they will
  4671.              have access to the values stored in these variables). Note
  4672.              that users having access to MILC commands within messages
  4673.              will overwrite these values!! It would be a wise precaution
  4674.              to issue a @R0 command prior to entering the message menu.
  4675.              NOTE that any text display you've created the old way which
  4676.              depends on @Nx and @Zx variables being initialized to zeros
  4677.              and nulls should be modified such that they perform their
  4678.              own initialization (this could easily be accomplished by
  4679.              including an initialization file with the @I4 command.
  4680.  
  4681.     Because of the problems which  might occur with the globality  aspect of
  4682.     using the @R1 command above, another solution (and much greater power as
  4683.     a result) is to have the contents of the @Zx and @Nx variables saved  in
  4684.     a unique file.  This can be accomplished with two new MILC variables:
  4685.  
  4686.           @Fx - where 'x' is a unique file identifier which can range from
  4687.                 0 to 99. When an @Fx command is invoked, the contents of the
  4688.                 @Zx and @Nx variables are saved to a unique filename which
  4689.                 you will know as 'x'.
  4690.  
  4691.  
  4692.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4693.  
  4694.  
  4695.  
  4696.     Page  4-32              Customizing MAGNUM - Display Files/MILC Commands
  4697.                 Retain (@R), File (@F) and Query (@Q) MILC Variables @Z & @N
  4698.  
  4699.  
  4700.  
  4701.           @Qx - where 'x' is a unique file identifier which can range from
  4702.                 0 to 99. When an @Qx command is invoked, the contents of the
  4703.                 @Zx and @Nx variables are restored from the unique filename
  4704.                 which the @Fx command saved them to.
  4705.  
  4706.     When using @Fx to save your variables and @Qx to restore them, you don't
  4707.     have to use the  @R1 command.  However,  the @Fx and @Qx  functions have
  4708.     advantages and disadvantages over using the @R1 function.  For  example,
  4709.     with @Fx and @Qx, any subsequent  display file must know which 'x'  file
  4710.     to  restore  from.    On  the  other  hand,  the  @R1 function makes the
  4711.     variables global across the board which would proably not be a good idea
  4712.     when doing messages.
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4756.  
  4757.  
  4758.  
  4759.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-33
  4760.     Stack Keystrokes Command (@S)
  4761.  
  4762.  
  4763.  
  4764.                                    @S Command
  4765.  
  4766.     PURPOSE: Places Keystrokes in the user's command stack, as if the user
  4767.              typed in the characters him/herself.
  4768.      FORMAT: @Sx
  4769.              where 'x' refers to which @Zx variable to stack from.
  4770.  
  4771.     This command  places characters  in the  user's command  stack.  The 'x'
  4772.     tells which @Zx variable to place  the commands in the stack from.   For
  4773.     example, if reading a display file  from the main menu, you could  place
  4774.     the user in the [F]iles menu  looking at all new files since  their last
  4775.     logon with the following:
  4776.  
  4777.          @Z7="\\f\n\+\\"; @S7 @C16
  4778.  
  4779.     Note  that  because  the  semicolon  (;)  character  is the terminataion
  4780.     character of a string assignment,  that character cannot be used  within
  4781.     the string itself!  The @Sx  command, while copying the contents of  the
  4782.     @Zx  variable  containing  the  string  to  place  in the command stack,
  4783.     converts  all  backslash  (\)  characters  to  semicolons.  In the above
  4784.     example, the @S7 command would place the following in the user's command
  4785.     stack:
  4786.  
  4787.          ;;f;n;+;;
  4788.  
  4789.     Note that this only PLACES commands  in the user's command stack.   Upon
  4790.     ending  (or  terminating  with  @C16)  the  display,  all  system  input
  4791.     (prompts) will  get their  input from  the keystrokes  now stored in the
  4792.     user's command stack  until the last  keystroke stored is  read.  Magnum
  4793.     will revert back to getting its input from the user (modem) when no more
  4794.     keystrokes remain in the command stack.
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4819.  
  4820.  
  4821.  
  4822.     Page  4-34              Customizing MAGNUM - Display Files/MILC Commands
  4823.                                             Text to Log (activity) File (@T)
  4824.  
  4825.  
  4826.  
  4827.                                    @T Command
  4828.  
  4829.     PURPOSE: Sends text within a quoted string or a @Zx variable to the
  4830.              ACTIVITY.x file.
  4831.     FORMAT: @Tx
  4832.             @T"string"
  4833.  
  4834.     This command writes to the ACTIVITY.x file. There are two ways to send
  4835.     text to the ACTIVITY.x file:
  4836.  
  4837.              The following example writes the text appearing within
  4838.              the double-quotes to the ACTIVITY file:
  4839.  
  4840.                     @T"This is a sample text line"
  4841.  
  4842.              The following example writes the contents of variable
  4843.              @Z5 to the ACTIVITY file:
  4844.  
  4845.                     @T5
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4882.  
  4883.  
  4884.  
  4885.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-35
  4886.     User Substitution Commands (@U)
  4887.  
  4888.  
  4889.  
  4890.                                       @U Command
  4891.  
  4892.     PURPOSE: 'USER' information will display. Ideally suited for giving the
  4893.              illusion of a customized display file to the user.
  4894.      FORMAT: @Ux
  4895.              where 'x' is the parameter (a number) representing what to
  4896.              display.
  4897.  
  4898.     The command  @Ux in  a display  file will  be replaced  with information
  4899.     about the user depending on the value of the 'x' paramter.
  4900.  
  4901.     The 'x' parameter can range from 0 to 75 as follows:
  4902.  
  4903.        @U0  - Deleted or active user. Displays "deleted" or "active".
  4904.  
  4905.        @U1  - Displays User's ID number. Up to 10 chars.
  4906.  
  4907.        @U2  - Displays user's LAST name. Up to 20 chars.
  4908.  
  4909.        @U3  - Displays user's FIRST name. Up to 20 chars.
  4910.  
  4911.        @U4  - Displays user's MIDDLE name. Up to 10 chars.
  4912.  
  4913.        @U5  - Display's "Private Messages" or "No Private Messages"
  4914.  
  4915.        @U6  - Displays user's STREET1 (or company name) - up to 40 chars.
  4916.  
  4917.        @U7  - Displays user's STREET2 (or street address) - up to 40 chars.
  4918.  
  4919.        @U8  - Displays user's CITY - up to 20 chars.
  4920.  
  4921.        @U9  - Displays user's STATE or PROVINCE - up to 20 chars.
  4922.  
  4923.        @U10 - Displays user's ZIP or other postal info - up to 20 chars.
  4924.  
  4925.        @U11 - Displays user's COUNTRY - up to 20 chars.
  4926.  
  4927.        @U12 - Displays user's PASSWORD - up to 20 chars (be carefull!)
  4928.  
  4929.        @U13 - Displays date of user's FIRST CALL (10 chars)
  4930.  
  4931.        @U14 - Displays date of user's LAST CALL (10 chars)
  4932.  
  4933.        @U15 - Displays time of user's LAST CALL (5 chars)
  4934.  
  4935.        @U16 - Displays user's DATE OF BIRTH (10 chars)
  4936.  
  4937.        @U17 - Displays user's PHONE #1 (up to 20 chars)
  4938.  
  4939.        @U18 - Displays user's PHONE #2 (up to 20 chars)
  4940.  
  4941.        @U19 - Displays user's LAST "NEW FILES" search date (10 chars)
  4942.  
  4943.  
  4944.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  4945.  
  4946.  
  4947.  
  4948.     Page  4-36              Customizing MAGNUM - Display Files/MILC Commands
  4949.                                              User Substitution Commands (@U)
  4950.  
  4951.  
  4952.  
  4953.        @U20 - Displays user's CPU TYPE (15 chars)
  4954.  
  4955.        @U21 - Displays user's CONFERENCE letters (up to 26 chars)
  4956.  
  4957.        @U22 - Displays user's MEMODATE #1 (10 chars)
  4958.  
  4959.        @U23 - Displays user's MEMODATE #2 (10 chars)
  4960.  
  4961.        @U24 - Displays sysop's COMMENT about user (up to 60 chars) be
  4962.                careful with this one!
  4963.  
  4964.        @U25 - Displays user's selected FILE XFER PROTOCOL (up to 10 chars)
  4965.  
  4966.        @U26 - Displays user's PERIOD TYPE (up to 5 chars)
  4967.  
  4968.        @U27 - Displays "Expert" or "Novice" menu types.
  4969.  
  4970.        @U28 - Displays "Authorized" or "Unauthorized" (is user locked out?)
  4971.  
  4972.        @U29 - Displays user's color settings ("color" or "B/W")
  4973.  
  4974.        @U30 - Displays user's setting of "'More' prompt" or "No 'More'
  4975.                prompt"
  4976.  
  4977.        @U31 - Displays "Erase 'More' prompt" or "Do not erase 'More' prompt"
  4978.  
  4979.        @U32 - Displays "Single-keystroke commands" or "C/R"
  4980.  
  4981.        @U33 - Displays "Message Deletion" or "No Message Deletion"
  4982.  
  4983.        @U34 - Displays user's LINES PER SCREEN (up to 3 chars)
  4984.  
  4985.        @U35 - Displays user's SECURITY LEVEL (up to 5 chars)
  4986.  
  4987.        @U36 - Displays user's # OF FILES UPLOADED (up to 5 chars)
  4988.  
  4989.        @U37 - Displays user's # OF FILES DOWNLOADED (up to 5 chars)
  4990.  
  4991.        @U38 - Displays user's ADJUSTED CHARS/SEC XFER RATE (up to 5 chars)
  4992.  
  4993.        @U39 - Displays user's UL/DL RATIO (up to 10 chars - ie: "10 to 1")
  4994.  
  4995.        @U40 - Displays user's TOTAL CALLS (up to 10 chars)
  4996.  
  4997.        @U41 - Displays user's MINUTES REMAINING FOR THIS CALL (up to 10
  4998.                chars)
  4999.  
  5000.        @U42 - Displays user's MINUTES REMAINING FOR THE PERIOD (up to 10
  5001.                chars)
  5002.  
  5003.        @U43 - Displays user's LAST MSG NUMBER READ (up to 10 chars)
  5004.  
  5005.  
  5006.  
  5007.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5008.  
  5009.  
  5010.  
  5011.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-37
  5012.     User Substitution Commands (@U)
  5013.  
  5014.  
  5015.        @U44 - Displays user's ACCUMLATED UPLOAD K BYTES (up to 10 chars)
  5016.  
  5017.        @U45 - Displays user's ACCUMLATED DOWNLOAD K BYTES (up to 10 chars)
  5018.  
  5019.        @U46 - Displays user's ALLOWED NUMBER OF D/L's FOR PERIOD (up to 10
  5020.                chars)
  5021.  
  5022.        @U47 - Displays user's ALLOWED DOWNLOAD K BYTES FOR PERIOD (up to 10
  5023.                chars)
  5024.  
  5025.        @U48 - Displays user's BAUDRATE (up to 5 chars)
  5026.  
  5027.        @U49 - Displays "Modem Error Correction" or "No Modem Error
  5028.                Correction"
  5029.  
  5030.        @U50 - Displays allowable "@" commands for messages (up to 26 chars)
  5031.  
  5032.        @U51 - Displays User Date Format ("U.S." or "EUROPE")
  5033.  
  5034.        @U52 - Displays a string of up to 26 chars showing the user's FREE
  5035.                download areas)
  5036.  
  5037.        @U53 - Displays the number of FREE downloads a user has performed
  5038.  
  5039.        @U54 - In preparation for running certain externals created by
  5040.                Gilmore Systems, this MILC command supplies the complete
  5041.                filespec (drive,path,filename) for the MBBSINIT.x file
  5042.                associated with the node the user is on.
  5043.  
  5044.        @U55 - Like @U54 above, but supplies filespec for STARTUP.x instead.
  5045.                This is in preparation for running externals created from 3rd
  5046.                party software developers.
  5047.  
  5048.        @U56 - User's MSG_R_AREAS  (up to 26 chars)
  5049.        @U57 - User's MSG_W_AREAS  (up to 26 chars)
  5050.        @U58 - User's MSG_L_AREAS  (up to 26 chars)
  5051.  
  5052.        @U59 - User's FILE_U_AREAS (up to 26 chars)
  5053.        @U60 - User's FILE_D_AREAS (up to 26 chars)
  5054.        @U61 - User's FILE_L_AREAS (up to 26 chars)
  5055.  
  5056.        @U62 - Displays a string of up to 78 characters showing the user's
  5057.               areas of personal interests.
  5058.  
  5059.        @U63 - User's compression default type "ARC" or "ZIP" (w/o quotes).
  5060.  
  5061.        @U64 - Number of PUBLIC messages entered by user.
  5062.  
  5063.        @U65 - Number of PRIVATE messages entered by user.
  5064.  
  5065.        @U66 - Number of RJE Jobs run by user.
  5066.  
  5067.        @U67 - The complete filespec (drive,path,filename) of the last
  5068.  
  5069.  
  5070.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5071.  
  5072.  
  5073.  
  5074.     Page  4-38              Customizing MAGNUM - Display Files/MILC Commands
  5075.                                              User Substitution Commands (@U)
  5076.  
  5077.  
  5078.               message saved by the user. Note that the REF# of last
  5079.               message saved for any external programs you may have written
  5080.               can be derived from the filespec of the message. For example:
  5081.  
  5082.                         Filespec: D:\MAGNUM\MSG_DIR\K\K1234567.890
  5083.                             Ref#:                     K1234567890
  5084.  
  5085.               Note that a CC (Carbon Copy) is not considered to be a
  5086.               message saved. In the case of saving a message with CC's,
  5087.               only the original message will be deemed to be the 'last
  5088.               message saved'.
  5089.  
  5090.        @U68 - the complete filespec (drive, path, filename) of the last
  5091.               file the user uploaded during THIS session. This variable
  5092.               is ideally used to pass this information to an external
  5093.               program right after the user performs a file upload. This
  5094.               can be accomplished with the POSTUP.BBS display file.
  5095.  
  5096.        @U69 - the current MessageBase the user is in.
  5097.  
  5098.        @U70 - the current FileBase the user is in.
  5099.  
  5100.        @U71 - Returns Y or N depending on whether the user's ID is reusable.
  5101.  
  5102.        @U72 - Returns user account type (U or M). U=user, M=mail.
  5103.  
  5104.        @U73 - Returns Y or N depending on if the user can use Remote Mail.
  5105.  
  5106.        @U74 - Returns the MSG GROUP assigned to this user (0-255).
  5107.  
  5108.        @U75 - Returns the FILE GROUP assigned to this user (0-255).
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.  
  5132.  
  5133.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5134.  
  5135.  
  5136.  
  5137.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-39
  5138.     View System Variables (@V)
  5139.  
  5140.  
  5141.  
  5142.                                    @V Command
  5143.  
  5144.     PURPOSE: Allows static information about the system/session to be viewed
  5145.              and/or passed to external programs.
  5146.      FROMAT: @Vx (where 'x' is the one of the system variables described
  5147.              below. These variables are generally viewed or assigned to a
  5148.              @Zx variable).
  5149.  
  5150.     System  related  information  can  be  used  to  pass  as information to
  5151.     external  programs.    These  variables  are  not  changeable  (most are
  5152.     changeable by "re-compiling" your STARTUP  files), which is why we  call
  5153.     it the VIEW command rather than something else).
  5154.  
  5155.     The @Vx command can be used much like the @Ux and @Ox command in that it
  5156.     can be  assigned to  a @Zx  variable.   The @Vx  commands are as follows
  5157.     (where 'x' is the static variable you wish to use):
  5158.  
  5159.        0 = Comport handle (ie: to pass to an external program such as an
  5160.            external file xfer program). NOTE: The comport handle is NOT
  5161.            automatically passed to child processes. To pass the handle, you
  5162.            will need to do two things:
  5163.              - Make the child process aware of the handle number by
  5164.                including the contents of @V0 on the command line:
  5165.                   @z1=v0;
  5166.              - The comport handle is automatically marked UN-INHERITABLE to
  5167.                child processes. The 128 bit of MILC variable @N0 is used to
  5168.                tell Magnum that the comport handle is to be inherited by
  5169.                your external child process. Simply OR the value 128 into the
  5170.                @N0 variable:
  5171.                   @n0=7; @n0=(n0|128);
  5172.                See the description of CHILDREN.BBS in the "Creating
  5173.                Subdirectories" portion of the manual.
  5174.        1-26 = The actual DIRECTORIES of file areas A thru Z, such that
  5175.               1=file directory A, 2=file directory B,...26=file directory Z.
  5176.       27-52 = The actual file DESCRIPTION strings for file areas A thru Z
  5177.               such that 27=file description A, ... 52=file description Z.
  5178.       53-78 = The actual message DESCRTIPTION strings for message conference
  5179.               areas A thru Z such that 53=message description A, ...
  5180.               78=message description Z.
  5181.          79 = The PROGRAM directory.
  5182.          80 = The SESSION directory.
  5183.          81 = The BULLETIN directory.
  5184.          82 = The MENU directory.
  5185.          83 = The HELP directory.
  5186.          84 = The DISPLAY directory.
  5187.          85 = The EXTERNAL directory.
  5188.          86 = The RJE directory (where RJE programs and menu(s) are).
  5189.          87 = The MESSAGE directory (parent directory only, there are 26
  5190.               subdirectories (A-Z) under this).
  5191.          88 = The WORK directory.
  5192.          89 = The USERS directory.
  5193.          90 = The SYSOUT directory.
  5194.  
  5195.  
  5196.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5197.  
  5198.  
  5199.  
  5200.     Page  4-40              Customizing MAGNUM - Display Files/MILC Commands
  5201.                                                   View System Variables (@V)
  5202.  
  5203.  
  5204.          91 = The RJE RESULTS directory (it's one of your FILE directories).
  5205.          92 = ACTIVITY.x handle (ie: to pass to an external program such as
  5206.               an external file xfer program). NOTE: The ACTIVITY.x handle is
  5207.               NOT automatically passed to child processes. To pass the
  5208.               handle, you will need to do two things:
  5209.              - Make the child process aware of the handle number by
  5210.                including the contents of @V92 on the command line:
  5211.                   @z1=v92;
  5212.              - The ACTIVITY.x handle is automatically marked UN-INHERITABLE
  5213.                to child processes. The 64 bit of MILC variable @N0 is used
  5214.                to tell Magnum that the ACTIVITY.x handle is to be inherited
  5215.                by your external child process. Simply OR the value 64 into
  5216.                the @N0 variable:
  5217.                   @n0=7; @n0=(n0|64);
  5218.                See the description of CHILDREN.BBS in the "Creating
  5219.                Subdirectories" portion of the manual.
  5220.              - NOTE: The child process inheriting this handle may use it for
  5221.                      WRITE-ONLY (the handle is not available for reading).
  5222.          93 = The PID (process identification number) of MSESSION.EXE
  5223.               for this session. The PID will be non-zero if this call is
  5224.               successful.
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5260.  
  5261.  
  5262.  
  5263.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-41
  5264.     Wait Command (@W)
  5265.  
  5266.  
  5267.  
  5268.                                       @W Command
  5269.  
  5270.     PURPOSE: Waits a specified number of miliseconds, then continues.
  5271.      FORMAT: @Wx
  5272.              where 'x' is the number of miliseconds to wait.
  5273.  
  5274.     The  WAIT  (or  pause)  command,  waits  'x' number of miliseconds, then
  5275.     continues.
  5276.  
  5277.     This command is useful in your GOODBYE.BBS file to create a pause while
  5278.     the modem empties its buffer to the user prior to disconnecting. For
  5279.     example, @W2000 will cause a delay of 2 seconds before proceeding - this
  5280.     is usually sufficient to empty the modem's buffer before ending the
  5281.     GOODBYE.BBS file.
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5323.  
  5324.  
  5325.  
  5326.     Page  4-42              Customizing MAGNUM - Display Files/MILC Commands
  5327.                            String (@Z) Commands (ie: String Logic, I/O, etc)
  5328.  
  5329.  
  5330.  
  5331.                                       @Z Command
  5332.  
  5333.     PURPOSE: String variable command. Performs string functions, screen I/O,
  5334.              and file writes.
  5335.     FORMATs: @Zx;             Prints contents of @Zx
  5336.              @Zx=Zy;          Assigns contents of @Zy to @Zx
  5337.              @Zx="string";    Assigns a string to @Zx (ie: @Z1="John";)
  5338.              @Zx('abc');      Get's remote user's input - restricts input to
  5339.                                'abc'
  5340.              @Zx(y);          Get's remote user's input - up to 'y' chars.
  5341.              @Zx=Ny;          Converts numeric variable @Ny to string,
  5342.                                assign to @Zx
  5343.              @Zx=Oy;          Assigns contents of @Oy to @Zx (See @O)
  5344.              @Zx=Uy;          Assigns contents of @Uy to @Zx (See @U)
  5345.              @Zx=Vy;          Assigns contents of @Vy to @Zx (See @V)
  5346.              @Zx(EXP);        Performs a string expression (concatenation)
  5347.              @Zx("string");   Writes "string" to disk, followed by contents
  5348.                                of @Zx
  5349.  
  5350.          where 'x' is the variable identifier (0 to 99), 'abc' are
  5351.          characters, EXP is a string expression, "string" is a character
  5352.          string, 'y' is a number.
  5353.  
  5354.     The @Zx  command is  a very  powerful command  in that  it performs many
  5355.     different tasks.  It  is capable of user  input, screen or file  output,
  5356.     performing string concatenations, conversion of @Nx (numeric)  variables
  5357.     to string, etc.
  5358.  
  5359.     There are 100 different string variables available (identified as @Z0 to
  5360.     @Z99).  Each one of these  is unique, and is capable of  storing strings
  5361.     of up to 112 characters each.
  5362.  
  5363.     Note that all @Z commands must end with the ';' (semicolon) character!
  5364.  
  5365.     Let's go through the different capabilities:
  5366.  
  5367.     DISPLAY THE CONTENTS OF A STRING VARIABLE:
  5368.  
  5369.        This is the simplest form of the @Z commands. Simply "@Zx;" (without
  5370.        quotes) where 'x' is the string variable (0 to 99) that you wish the
  5371.        contents displayed. If @Z5 had the string "John" in it, then the
  5372.        command
  5373.  
  5374.              @Z5;
  5375.  
  5376.        embedded anywhere within the file will display "John" (without
  5377.        quotes) on the remote user's screen.
  5378.  
  5379.     ASSIGNMENT TO A STRING VARIABLE:
  5380.  
  5381.        This is the next simplest form of the @Z command. Let's suppose that
  5382.        the numeric variable @Z4 had the value "Good Morning":
  5383.  
  5384.  
  5385.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5386.  
  5387.  
  5388.  
  5389.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-43
  5390.     String (@Z) Commands (ie: String Logic, I/O, etc)
  5391.  
  5392.  
  5393.  
  5394.             @Z1=Z4;      @Z2="John";
  5395.  
  5396.        In the above two examples, the contents of @Z4 (which we said was
  5397.        "Good Morning") is assigned to @Z1, therefore @Z1 and @Z4 now both
  5398.        contain the string "Good Morning". In the @Z2 assignment, the string
  5399.        "John" is being assigned to @Z2.
  5400.  
  5401.     GETTING REMOTE USER's STRING INPUT:
  5402.  
  5403.        The @Z command can ask the remote user to input a string or a single
  5404.        character. By way of example, let's demonstrate the two forms of
  5405.        string or single-character input:
  5406.  
  5407.            @Z5(20);    Accepts up to a 20-character string, assigns to @Z5
  5408.  
  5409.            @Z6('YN');  Accepts either the 'Y' or the 'N' character - nothing
  5410.                        else. Assigns the string "Y" or "N" to @Z6.
  5411.  
  5412.        As a working example, let's ask the user for their favorite sport:
  5413.  
  5414.               What is your favorite sport => @Z1(20);
  5415.  
  5416.        This would print "What is your favorite sport => " and wait for the
  5417.        user to enter a response of up to 20 characters. When the user
  5418.        presses his ENTER (or C/R) key, whatever they typed will be assigned
  5419.        to string variable @Z1. Note that responses are always required!
  5420.  
  5421.        Many times, you'll be offering the user a choice (Y/N) or a menu
  5422.        selection that requires a single-character response. For example:
  5423.  
  5424.               Are you sure (Y/N) => @Z1('yn');
  5425.  
  5426.        would print "Are you sure (Y/N) => " on the user's screen, then wait
  5427.        for the user to respond with 'y' or 'n' before continuing. Note that
  5428.        upper/lowercase is not important - 'y' is the same as 'Y' as far as
  5429.        the system is concerned. Also note that if the user's environment
  5430.        settings is set for single-character responses, the system will not
  5431.        wait for them to press ENTER (or C/R) before continuing, otherwise
  5432.        their single-character response will not be processed until they
  5433.        press ENTER (or C/R). In the above example, the user's response will
  5434.        be stored as a single-character string in variable @Z1. Note that we
  5435.        will use double quotes (" ") to denote strings, and single quotes
  5436.        (' ') to denote single characters.
  5437.  
  5438.        In a menu or multiple choice type of situation, the following might
  5439.        be found:
  5440.  
  5441.                A) True
  5442.                B) False
  5443.                C) Could go either way
  5444.                D) I don't know
  5445.  
  5446.  
  5447.  
  5448.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5449.  
  5450.  
  5451.  
  5452.     Page  4-44              Customizing MAGNUM - Display Files/MILC Commands
  5453.                            String (@Z) Commands (ie: String Logic, I/O, etc)
  5454.  
  5455.  
  5456.             Enter your choice => @Z2('abcd');
  5457.  
  5458.        You are not limited by alphabetic characters either, the above could
  5459.        be represented with single-digit numbers as well:
  5460.  
  5461.                1) True
  5462.                2) False
  5463.                3) Could go either way
  5464.                4) I don't know
  5465.  
  5466.             Enter your choice => @Z2('1234');
  5467.  
  5468.        Or it could contain a mixture:
  5469.  
  5470.                A) Some of the time      1) Skip this question
  5471.                B) Most of the time      2) Quit, return to system
  5472.                C) None of the time
  5473.                D) All of the time
  5474.  
  5475.             Enter your choice => @Z2('abcd12');
  5476.  
  5477.  
  5478.     CONVERTING A NUMERIC VARIABLE (@Nx) TO STRING:
  5479.  
  5480.        The @Zx command is capable of converting a numeric variable to
  5481.        string. Suppose that @N2 had the numeric value of 365:
  5482.  
  5483.               @Z5=N2;
  5484.  
  5485.        In the above example, the numeric variable @N2 has a value of 365.
  5486.        This is converted to the string "365" and assigned to string variable
  5487.        @Z5.
  5488.  
  5489.     GETTING MISCELLANEOUS SYSTEM OR USER INFORMATION:
  5490.  
  5491.        The @Zx command can also be assigned any of the @Ox, @Ux or @Vx
  5492.        strings. See @O, @U, @V commands for their parameters. For example:
  5493.  
  5494.            @Z1=O10;    assigns the user's age (as a string) to string
  5495.                        variable @Z1
  5496.  
  5497.        Remember that the @Nx (numeric) variables cannot obtain any @O or @U
  5498.        values. @Nx values can only obtain those values from @Zx variables:
  5499.  
  5500.            @Z1=O10;  @N1=Z1;
  5501.  
  5502.        This assigns the user's age to string variable @Z1, then converts the
  5503.        numeric string in @Z1 to numeric for assignment to @N1.
  5504.  
  5505.  
  5506.     PERFORMING STRING CONCATENATION:
  5507.  
  5508.        String concatenation is simply taking two strings, and combining them
  5509.  
  5510.  
  5511.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5512.  
  5513.  
  5514.  
  5515.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-45
  5516.     String (@Z) Commands (ie: String Logic, I/O, etc)
  5517.  
  5518.  
  5519.        into one - as long as the resultant string is 112 characters or less.
  5520.  
  5521.        Examples:
  5522.  
  5523.              Suppose that @Z1 contained the string "Bed":
  5524.  
  5525.                  @Z1=(Z1+" time");     would result in @Z1 containing
  5526.                                        "Bed time".
  5527.  
  5528.              or
  5529.  
  5530.                  @Z1=(Z1+"time");      would reslut in @Z1 containing
  5531.                                        "Bedtime".
  5532.  
  5533.              Suppose that @Z1 contains "John", and @Z2 contains
  5534.              "is 25 years old":
  5535.  
  5536.                  @Z3=(Z1+Z2);          would result in "Johnis 25 years old"
  5537.  
  5538.              You might need 2 steps in that case:
  5539.  
  5540.                  @Z3=(Z1+" "); @Z3=(Z3+Z2); would result in
  5541.                  "John is 25 years old"
  5542.  
  5543.     WRITING THE @Zx VARIABLE TO DISK:
  5544.  
  5545.        With all the power of the @Zx command, it would certainly be a shame
  5546.        if there were no way to write the contents of some of the variables
  5547.        to disk. This is handy with such files as Questionairres. To write
  5548.        the contents of a @Zx variable to disk, simply:
  5549.  
  5550.                @Z5("Favorite Sport: ");
  5551.  
  5552.        Assuming @Z5 contained the string variable "swimming", the above
  5553.        command would write the following line to a disk file:
  5554.  
  5555.                Favorite Sport: swimming
  5556.  
  5557.        Basically, writing either a @Zx or @Nx variable to disk is the same.
  5558.  
  5559.        The format for @Zx variables are:  @Zx("string");
  5560.        The format for @Nx variables are:  @Nx("string");
  5561.  
  5562.        where 'x' is the number of the string or numeric variable you want
  5563.        written, and "string" is any descriptive string you want (as an aid
  5564.        in telling you what you've written).
  5565.  
  5566.        See the @N command "Writing the @Nx VARIABLE TO DISK" section for
  5567.        more examples and an explanation of what files actually get written
  5568.        to.
  5569.  
  5570.  
  5571.  
  5572.  
  5573.  
  5574.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5575.  
  5576.  
  5577.  
  5578.     Page  4-46              Customizing MAGNUM - Display Files/MILC Commands
  5579.                                              Character Display - @\ command.
  5580.  
  5581.  
  5582.                                    @\ Command
  5583.  
  5584.     PURPOSE: Force display of a character.
  5585.      FORMAT: @\x             Displays character equivalent of 'x'.
  5586.  
  5587.     The IBM character set contains 256  characters (values 0 to 255).   Note
  5588.     that if  you're using  a 7  databit setup  only characters  0 to 127 are
  5589.     available, however, 99% of all BBSs are running an 8 databit setup.
  5590.  
  5591.     Unfortunately, many of you are limited as to what characters can  appear
  5592.     in your display files by the characters which are on your keyboard.  For
  5593.     example, there's  no BEL  character on  your keyboard  (sends an audible
  5594.     beep to the remote user).  This is where the @\x command comes in.   The
  5595.     command:
  5596.  
  5597.          @\7
  5598.  
  5599.     sends a BEL character to the screen (and comport).  Other examples:
  5600.  
  5601.          @\13    CR (carriage return)
  5602.          @\10    LF (line feed)
  5603.  
  5604.     Valid values  are @\0  through @\255  exluding the  @\17 (XON)  and @\19
  5605.     (XOFF) equivalents.  If @\x has a negative value, or a value of 17,  19,
  5606.     or greater than 255, then the statement is ignored.
  5607.  
  5608.     Note that the number used as 'x' in a @\x statement is terminated by the
  5609.     first  non-digit.    Therefore,  if  you  wanted  to a display a numeric
  5610.     character  following  a  BEL  (@\7)  such  as  the  number  10, then the
  5611.     statement @\710 will NOT work.  One alternative around this might be the
  5612.     following:
  5613.  
  5614.          @N2=10; @\7@n2;
  5615.  
  5616.     or
  5617.  
  5618.          @N2=10; @\7@\[2]  (See "Indirect Addressing" later in this chapter)
  5619.  
  5620.     Using the  advanced features  of Indirect  Addressing (explained  on the
  5621.     pages of this chapter entitled  "Advanced MILC Command Usage -  Indirect
  5622.     Addressing"),  the  following  example  demonstrates  how to display the
  5623.     entire character set:
  5624.  
  5625.          @N5=0;
  5626.          @P0 @\[5+] @B0(N5<256);
  5627.  
  5628.     NOTE: The @\x command is available to ALL users, and is NOT part of the
  5629.           DISP_CMDS field of each user's record.
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5638.  
  5639.  
  5640.  
  5641.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-47
  5642.     "Sysop Only" MILC commands: @$x, @&x, @!x, and @?x
  5643.  
  5644.  
  5645.     Four MILC commands are designated "sysop use only".   These are not part
  5646.     of the  DISP_CMDS field  of any  user record  including the  sysop.  The
  5647.     commands perform the following functions:
  5648.  
  5649.        @$x - Save @Zx and @Nx values to a file in MBBSEXEC format
  5650.        @&x - Restore @Zx and @Nx values from a file in MBBSEXEC format.
  5651.        @!x - Delete a file.
  5652.        @?x - Check for file existence.
  5653.  
  5654.            @$x - Save @Zx and @Nx values to a file in MBBSEXEC format
  5655.  
  5656.     This command will save the values of all of the @Zx and @Nx variables in
  5657.     a  file  compatible  with  MBBSEXEC  format  (see  MBBSEXEC  -  Advanced
  5658.     section).  The 'x'  refers to which @Zx  variable holds the filename  to
  5659.     save to. Example:
  5660.  
  5661.        @Z5="milcvar.val";
  5662.        @$5
  5663.  
  5664.         @&x - Restore @Zx and @Nx values from a file in MBBSEXEC format
  5665.  
  5666.     This command will restore the values of all of the @Zx and @Nx variables
  5667.     from a  file compatible  with MBBSEXEC  format (see  MBBSEXEC - Advanced
  5668.     section).  The 'x'  refers to which @Zx  variable holds the filename  to
  5669.     restore from.  Example:
  5670.  
  5671.        @Z5="milcvar.val";
  5672.        @&5
  5673.  
  5674.                                @!x - Delete File
  5675.  
  5676.     This command will delete a file.   The 'x' refers to which  @Zx variable
  5677.     holds the filename to delete.  Example:
  5678.  
  5679.        @Z5="milcvar.val";
  5680.        @!5
  5681.  
  5682.                          @?x - Check for File Existence
  5683.  
  5684.     This  command  tests  for  the  existence  of  a  file.    The  filename
  5685.     ([d:][path]filename[.ext]) to test is in  @Zx.  The result is  placed in
  5686.     @N0 (1=exists, 0=does not exist). Example:
  5687.  
  5688.              @Z5="d:\magnum\testfile.ext";
  5689.              @?5 @b1(n0=1); The file does NOT exist! @c16
  5690.              @p1 The file DOES exist!
  5691.  
  5692.     These four MILC commands  (@$x, @&x, @!x, and  @?x) can be used  to pass
  5693.     the values of the @Zx and @Nx variables to MBBSEXEC with (see MBBSEXEC -
  5694.     Advanced Section).   The  @Nx variables  in MSESSION  correlate with the
  5695.     @TALLYx variables in MBBSEXEC.  The @Zx variables in MSESSION  correlate
  5696.     with  the  @STRINGx  variables  in  MBBSEXEC.    See the SAVE_DATA() and
  5697.     RESTORE_DATA() commands in the advanced section of MBBSEXEC.
  5698.  
  5699.  
  5700.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5701.  
  5702.  
  5703.  
  5704.     Page  4-48              Customizing MAGNUM - Display Files/MILC Commands
  5705.                           "Sysop Only" MILC commands: @$x, @&x, @!x, and @?x
  5706.  
  5707.  
  5708.  
  5709.     These four MILC commands  (@$, @&x, @!x, and  @?x) are available to  the
  5710.     Sysop only.  This means that any message in the message database wishing
  5711.     to  utilize  these  commands  must  have  the  Sysop  (ID:    /0) as the
  5712.     originator of the  message.  All  other display files  may contain these
  5713.     commands since those  files must have  been created locally  anyway (ie:
  5714.     external menus, help screens,  HELLO?.*, SEC*.*, etc).   These commands,
  5715.     as with all  other MILC commands  will have no  effect if included  in a
  5716.     file  being  viewed  from  the  File  section's  "[A]ccess Arc/Zip file"
  5717.     function or "[R]ead Ascii File".
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5764.  
  5765.  
  5766.  
  5767.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-49
  5768.     Advanced MILC Command Usage - Indirect Addressing
  5769.  
  5770.  
  5771.           Advanced MILC Command Usage - Indirect Addressing (Indexing)
  5772.  
  5773.     The  MILC  command  language  includes  an  advanced feature known among
  5774.     programmers as  "indirect addressing"  (or "indexing").   If  you are  a
  5775.     programmer, or if  your company has  programmers, this section  might be
  5776.     best left to them.
  5777.  
  5778.     NOTE: Please have a thorough understanding of the MILC command language
  5779.           prior to using indirect addressing!
  5780.  
  5781.     Nearly every MILC command  is of the format  @Xn (where '@' is  the MILC
  5782.     command character,  'X' is  the command  group, and  'n' is  the command
  5783.     function or variable number).   Indirect addressing eliminates  the need
  5784.     to specify 'n' directly.  By  means of example, lets suppose you  wanted
  5785.     to display the values  of ALL of the  @Ux variables, one per  text line.
  5786.     Up until now, the only way to do this was as follows:
  5787.  
  5788.         0 : @U0
  5789.         1 : @U1
  5790.         .
  5791.         .
  5792.         .
  5793.         66 : @U66
  5794.  
  5795.     The above  would take  67 message  lines (or  67 display  file lines) to
  5796.     accomplish the task of displaying @Ux variable contents from @U0 through
  5797.     @U66.  The following example  demonstrates how to perform the  same task
  5798.     with indirect addressing:
  5799.  
  5800.         @N5=0;
  5801.         @P0 @N5; : @U[N5]
  5802.         @N5=(N5+1); @B0(N5<67);
  5803.  
  5804.     Note that in the above statements, we've introduced brackets '[' and ']'
  5805.     after the @U variable.  In the past, @U had to be followed by the number
  5806.     of which @U  variable you wanted.   With brackets,  the contents of  the
  5807.     brackets tell  Magnum to  get this  number from  the @N5  variable.  The
  5808.     first time through the loop, @N5  contains 0 (zero), so @U[N5] would  be
  5809.     identical to @U0.   The second time through  the loop, @N5 contains  the
  5810.     value of 1, so @U[N5] would be  identical to @U1, and so on.   Note that
  5811.     there are  two acceptible  ways of  indirect addressing.   Assuming  the
  5812.     value is in  variable @N5 (indirect  addressing ALWAYS references  a @Nx
  5813.     variable), the following two statements are identical:
  5814.  
  5815.         @U[N5];   @U[5];
  5816.  
  5817.     We chose  to use  the @U[N5]  method above  for your  convenience.   Our
  5818.     prefered method would be @U[5].
  5819.  
  5820.     Keep  in  mind  that  the  above  examples  used  the @Ux variables with
  5821.     indirect addressing, however,  idirect addressing can  be used with  any
  5822.     MILC variable that expects the command-group character to be followed by
  5823.     the variable number or command function.
  5824.  
  5825.  
  5826.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5827.  
  5828.  
  5829.  
  5830.     Page  4-50              Customizing MAGNUM - Display Files/MILC Commands
  5831.                            Advanced MILC Command Usage - Indirect Addressing
  5832.  
  5833.  
  5834.  
  5835.                        EXCEPTIONS TO INDIRECT ADDRESSING:
  5836.  
  5837.     YOU CANNOT INDIRECTLY ADDRESS MILC VARIABLES WHICH:
  5838.  
  5839.           1) Appear within parenthesis
  5840.           2) Appear to the right of an = (assignment) sign.
  5841.           3) The @Px MILC variable cannot be indirectly addressed
  5842.           4) The @Ix@Zy statement: The @Zy portion cannot be indirectly
  5843.              addressed.
  5844.  
  5845.     The following demonstrates some correct and incorrect usage of indirect
  5846.     addressing:
  5847.  
  5848.            @U[12]          CORRECT
  5849.            @B[17](0=0);    CORRECT
  5850.            @N5=Z[3];       INCORRECT (brackets illegal on right of '=')
  5851.            @Z5=(Z[2]+Z4);  INCORRECT (within parenthesis and right of '=')
  5852.            @\[14]          CORRECT
  5853.  
  5854.     Indirect addressing comes in most handy when building jump tables.   For
  5855.     example:
  5856.  
  5857.           1 - Today's News
  5858.           2 - Stock Quotes
  5859.           3 - Online Shopper
  5860.  
  5861.           0 - Quit, Return to BBS
  5862.  
  5863.                  Choice (1,2,3,0) => @N5(0,3); @B[5];
  5864.  
  5865.           @P1             - - - Today's News - - -
  5866.           .
  5867.           .
  5868.           . @C16
  5869.           @P2             - - - Stock Quotes - - -
  5870.           .
  5871.           .
  5872.           . @C16
  5873.           @P3             - - - Online Shopper - - -
  5874.           .
  5875.           .
  5876.           . @C16
  5877.           @P0 @C16
  5878.  
  5879.     The same rules of a terminating semicolon (;) still apply for those MILC
  5880.     command which  require the  terminating semicolon  (ie:   @B, @N, and @Z
  5881.     statements).
  5882.  
  5883.  
  5884.  
  5885.  
  5886.  
  5887.  
  5888.  
  5889.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5890.  
  5891.  
  5892.  
  5893.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-51
  5894.     Advanced MILC Command Usage - Enhanced Indirect Addressing
  5895.  
  5896.  
  5897.                           Enhanced Indirect Addressing
  5898.  
  5899.     Indirect addressing  was explained  on the  preceding pages.   Now we'll
  5900.     introduce what we call "Enhanced Indirect Addressing".
  5901.  
  5902.     If you're familiar with the  C programming language, you know  about the
  5903.     ++  and  --  operations  on  a  variable  (ie:    x++, --x, etc).  We've
  5904.     incorporated a similar operation in Enhanced Indirect Addressing.
  5905.  
  5906.     By way of example, here's how Enhanced Indirect Addressing works:
  5907.  
  5908.          @U[+5]  -- Increments the contents of @N5 prior to processing the
  5909.                     statement. If @N5 had the value 15, then this statement
  5910.                     would be identical to the statements: @N5=(N5+1); @U16
  5911.  
  5912.          @U[-5]  -- Decrements the contents of @N5 prior to processing the
  5913.                     statement. If @N5 had the value 15, then this statement
  5914.                     would be identical to the statements: @N5=(N5-1); @U14
  5915.  
  5916.          @U[5+]  -- Increments the contents of @N5 AFTER processing the
  5917.                     statement. If @N5 had the value 15, then this statement
  5918.                     would be identical to the statemnts: @U15 @N5=(N5+1);
  5919.  
  5920.          @U[5-]  -- Decrements the contents of @N5 AFTER processing the
  5921.                     statement. If @N5 had the value 15, then this statement
  5922.                     would be identical to the statements: @U15 @N5=(N5-1);
  5923.  
  5924.     Note that @U[+5] could also be denoted as @U[+N5].  The concept of the +
  5925.     and - symbols either prefixing or suffixing the value stems from the  ++
  5926.     and -- operations in the C programming language.
  5927.  
  5928.     The new, enhanced ability to increment/decrement the contents of the @Nx
  5929.     variable being referenced within brackets would replace the following:
  5930.  
  5931.           @N5=0;
  5932.           @P1 @U[5] @N5=(N5+1);
  5933.           @B1(N5<67);
  5934.  
  5935.     with:
  5936.  
  5937.           @N5=0;
  5938.           @P1 @U[5+]
  5939.           @B1(N5<67);
  5940.  
  5941.     and of course, both of the above methods are shorthand for:
  5942.  
  5943.           @U0
  5944.           @U1
  5945.           @U2
  5946.           .
  5947.           .
  5948.           .
  5949.           @U66
  5950.  
  5951.  
  5952.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  5953.  
  5954.  
  5955.  
  5956.     Page  4-52              Customizing MAGNUM - Display Files/MILC Commands
  5957.                   Advanced MILC Command Usage - Enhanced Indirect Addressing
  5958.  
  5959.  
  5960.  
  5961.     The  ability  to  increment/decrement  the  contents of the @Nx variable
  5962.     being  referenced  in  brackets  also  has  one additional feature - the
  5963.     ability to specify both a prefix and a suffix!  For example:
  5964.  
  5965.           @N5=1;
  5966.           @U[+5+]
  5967.  
  5968.     would be the equivalent of:
  5969.  
  5970.           @N5=1;
  5971.           @N5=(N5+1); @U2 @N5=(N5+1);
  5972.  
  5973.     In either case, the value of @N5 would be 3 when complete.
  5974.  
  5975.     Other valid examples:
  5976.  
  5977.           @U[5]
  5978.           @U[5+]
  5979.           @U[5-]
  5980.           @U[+5]
  5981.           @U[-5]
  5982.           @U[+5+]
  5983.           @U[+5-]
  5984.           @U[-5-]
  5985.           @U[-5+]
  5986.  
  5987.     Of course, these are  not limited to @Ux  variables, nor is the  bracket
  5988.     reference limited to 5 - we merely chose this for illustrative purposes.
  5989.  
  5990.     Here's  one  additional  example  which  demonstrates how to display the
  5991.     entire character set using what you've just learned:
  5992.  
  5993.           @N5=0;
  5994.           @P0 @\[5+] @B0(N5<256);
  5995.  
  5996.     And as a friendly reminder, indirect addressing (the use of '[' and ']')
  5997.     is NOT available for MILC  variables appearing within parenthesis or  on
  5998.     the right side of an assignment (=) statement.
  5999.  
  6000.  
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  
  6011.  
  6012.  
  6013.  
  6014.  
  6015.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6016.  
  6017.  
  6018.  
  6019.     MAGNUM's Sysop Console                                         Page  5-1
  6020.     Intro
  6021.  
  6022.  
  6023.     MAGNUM's sysop console (the parent process) - the program entitled MBBS,
  6024.     should be blown up to a full-size screen for this chapter.
  6025.  
  6026.     You've probably already guessed at certain portions of the display,  but
  6027.     basically MAGNUM's sysop  display shows you  a brief summary  of what is
  6028.     going on in  the system and  on each node.   For instance,  the date and
  6029.     time displayed above the [Node01] line is always accurate.  On the  same
  6030.     line, you will see  numbers on the far  right if/when someone is  logged
  6031.     on.  Assuming the 4-node version (node 4 is the conosle/local node),  if
  6032.     there is a user on node 1 and 2 for example, you will see "1,2" (without
  6033.     the quotes).  If you're logged  on locally, you will see 4(x)  where 'x'
  6034.     is the logical node  you're on.  If  you log on locally  with "* logon",
  6035.     you will  see 4(4).   However,  if you  logon with  a logical  node (ie:
  6036.     "logon  2")  you  will  see  4(2).    Note  that on the same line as the
  6037.     "Node01" title, you will see "Magnum BBS (r) " followed by your serial#.
  6038.  
  6039.     The Sysop display console (the MBBS.EXE program) displays 3 sessions  at
  6040.     a  time.    Intially,  the  sessions  for Node01, Node02, and Node03 are
  6041.     displayed on the screen.   To see other  sessions, use the TOP  command.
  6042.     In other words, if  you have our 9-node  version (8 comport +  console),
  6043.     you could enter the command "4 TOP" (without quotes) and Node04 would be
  6044.     brought to the top of the  display - sessions Node04, Node05 and  Node06
  6045.     would be displayed.   In the 4-node version  (3 comports + console),  "2
  6046.     TOP" and "1 TOP"  are the only acceptable  commands.  The first  line of
  6047.     each shows  whether the  line is  ACTIVE (waiting  for calls or announce
  6048.     only), or INACTIVE (shut down or not  operating), or who is on.  If  you
  6049.     just started the MBBS.EXE program, the next 2 lines of each screen  will
  6050.     be blank, otherwise, if someone is  online, line 2 will show some  brief
  6051.     info about them, while line 3 will show where they are in the system and
  6052.     what they're doing.   If no  one is on  an active line,  the system will
  6053.     show who was last  on, when they called  and how long they  were on for.
  6054.     By the way, the "how long they were on for" (in minutes) will change  to
  6055.     0 (zero) if someone tried to call the board but didn't successfully  log
  6056.     on since the last successful caller, or if carrier was dropped.
  6057.  
  6058.     The "Command => " prompt is where you interact with MAGNUM to do  things
  6059.     like turn  the bell  on/off, force  a user  off, shutdown  the bbs, turn
  6060.     on/off the printer, etc.  You can only get to this prompt by hitting one
  6061.     of 11 keys:  a digit (0 to 9) or an asterisk (*).  If you press a digit,
  6062.     it should be the digit of the node you wish the command to apply to.  If
  6063.     you press  *,  the  command  applies  to all nodes (except local logon).
  6064.  
  6065.     IMPORTANT: When entering a command, MAGNUM assumes high-priority and
  6066.                DOES NOT process incomming calls or any other obligations
  6067.                until you have finished entering your command. Therefore,
  6068.                USE THE COMMAND PROMPT AS QUICKLY AS POSSIBLE!! If you hit a
  6069.                digit or * and walk away, you have effectively frozen your
  6070.                BBS - currently running sessions are not affected but no more
  6071.                incoming calls or events (ACE commands) will be processed!
  6072.  
  6073.     The remainder of this chapter will deal with the commands you can  enter
  6074.     as sysop at MAGNUM's Sysop Command prompt.
  6075.  
  6076.  
  6077.  
  6078.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6079.  
  6080.  
  6081.  
  6082.     Page  5-2                                         MAGNUM's Sysop Console
  6083.                                 The Bell, Forceoff, Switch and Info Commands
  6084.  
  6085.  
  6086.  
  6087.                                  x bell|nobell
  6088.  
  6089.     Sometimes the sound of bells can become rather annoying.  MAGNUM sends a
  6090.     BEL character to the remote user when it doesn't like something, or when
  6091.     it needs to alert the remote user of something.  This BEL is also echoed
  6092.     at the sysop console.  To turn it off for, say Node01, you would enter:
  6093.  
  6094.          1 NOBELL
  6095.  
  6096.     To turn it on, enter:
  6097.  
  6098.          1 BELL
  6099.  
  6100.     Note that turning the bell on and off does not affect the remote  user's
  6101.     end.  The remote user will always hear the bell.
  6102.  
  6103.                                    x forceoff
  6104.  
  6105.     You can FORCE  a user off  anytime you wish.   All this  command does is
  6106.     emulate a  dropped carrier  on whatever  node you  use it  on.  The user
  6107.     could call back immediately if they wanted  to.  To force a user off  of
  6108.     node 2, for example, you would enter the command:
  6109.  
  6110.         2 forceoff
  6111.  
  6112.     The system will act  as though the user  dropped carrier (hung up),  and
  6113.     reset itself for the next caller on that node.
  6114.  
  6115.                                     x switch
  6116.  
  6117.     You can snoop  on any session  in progress by  switching to it.   When a
  6118.     session starts (with the exception of a local logon), the session starts
  6119.     at your end as an icon.  For example, if you wanted to snoop on the user
  6120.     on node 1, you would enter:
  6121.  
  6122.         1 Switch
  6123.  
  6124.     This would blow up the icon into a window or full text screen (depending
  6125.     on how MSESSION.EXE is  marked to start).   You can also switch  to that
  6126.     session by double clicking the mouse pointer on that session's icon.
  6127.  
  6128.     SNOOPING  ON  SOMEONE  PERFORMING  A  FILE  TRANSFER  (ie:  making their
  6129.     session the foreground process so  that you can see what  they're doing)
  6130.     WILL RESULT IN A TEMPORARY BOOST IN PRIORITY TO THAT FOREGROUND PROCESS!
  6131.     THIS CAN SLOW DOWN ALL OTHER SESSIONS!
  6132.  
  6133.     REMEMBER  THAT  ANYTIME  YOU  SNOOP  ON  A  SESSION,  IT  WILL RECEIVE A
  6134.     TEMPORARY BOOST IN PRIORITY BY OS/2, THUS CAUSING A SLIGHT SLOWDOWN  FOR
  6135.     ALL OTHER SESSIONS.  FILE TRANSFER DOES LARGE BLOCK WRITES AND READS  TO
  6136.     AND FROM YOUR MODEM (ie:  1K blocks) WHICH CAUSES TREMENDOUS SLOWDOWN IN
  6137.     PERFORMANCE OF THE OTHER SESSIONS IF  YOU SNOOP ON SOMEONE DOING A  FILE
  6138.     TRANSFER (make them the foreground process).
  6139.  
  6140.  
  6141.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6142.  
  6143.  
  6144.  
  6145.     MAGNUM's Sysop Console                                         Page  5-3
  6146.     The Bell, Forceoff, Switch and Info Commands
  6147.  
  6148.  
  6149.  
  6150.     BECAUSE OF THIS TEMPORARY BOOST IN PRIORITY FOR FOREGROUND PROCESSES, WE
  6151.     HAVE THROWN  IN A  DECREASE IN  PRIORITY FOR  THE LOCAL  NODE (logon via
  6152.     console).   THEREFORE, WHEN  YOU LOGON  LOCALLY (console),  YOUR SESSION
  6153.     WILL BE SLOWED DOWN (purposely) IF OTHERS ARE ONLINE!
  6154.  
  6155.                                      x Info
  6156.  
  6157.     The INFO command  shows information about  NODEx.  It  shows whether the
  6158.     bell is on or  off (beeping echoed to  console), whether the printer  is
  6159.     enabled or disabled, whether normal or announce-only mode is used.  Also
  6160.     shown is  the serial  number and  the node  numbers of  all active ports
  6161.     (nodes), the  device name  associated with  NODEx and  whether or  not a
  6162.     SHUTDOWN is scheduled  for node x.  If a shutdown  is scheduled for  all
  6163.     nodes it will be  shown here.  As  always, whenever you are  executing a
  6164.     command, the parent  "freezes" (won't respond  to incoming calls)  until
  6165.     the command is completed.  In this case, a display is presented and  you
  6166.     are prompted to strike a key  to clear the display - the  parent remains
  6167.     "frozen" until you clear the display  by striking a key.  Note  that the
  6168.     display for the "info" command takes place on the bottom 6 lines of  the
  6169.     display screen/window.
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6205.  
  6206.  
  6207.  
  6208.     Page  5-4                                         MAGNUM's Sysop Console
  6209.                                         The "* auto" and "* noauto" commands
  6210.  
  6211.  
  6212.                             "* auto" and "* noauto"
  6213.  
  6214.        * AUTO - Automatically switches to a session when a remote session is
  6215.                 started (regardless of node). This command might be
  6216.                 considered useful for those sysops running a single-node
  6217.                 BBS, whereas those running a multi-node BBS might find this
  6218.                 command to be disruptive.
  6219.  
  6220.        * NOAUTO - As before, only a local logon will be switched to
  6221.                   automatically, all other nodes must be switched to by
  6222.                   either the "x switch" command or by double clicking on the
  6223.                   session's icon with the mouse pointer. This is the startup
  6224.                   default. To make "* AUTO" the default, you can have it as
  6225.                   an "immediate" command in your ACE file.
  6226.  
  6227.        Note: Refer to the chapter on ACE (automatic command execution) -
  6228.              Magnum's event handler.
  6229.  
  6230.  
  6231.  
  6232.  
  6233.  
  6234.  
  6235.  
  6236.  
  6237.  
  6238.  
  6239.  
  6240.  
  6241.  
  6242.  
  6243.  
  6244.  
  6245.  
  6246.  
  6247.  
  6248.  
  6249.  
  6250.  
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260.  
  6261.  
  6262.  
  6263.  
  6264.  
  6265.  
  6266.  
  6267.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6268.  
  6269.  
  6270.  
  6271.     MAGNUM's Sysop Console                                         Page  5-5
  6272.     The level, print and lockout commands
  6273.  
  6274.  
  6275.  
  6276.                                   x level yyyy
  6277.  
  6278.     While someone is  actively online, you  can change their  security level
  6279.     with this command.  For example, if you wish to change the user on  node
  6280.     1 to a security level of 50, you would enter the following:
  6281.  
  6282.         1 LEVEL 50
  6283.  
  6284.     MAGNUM would then give you a message as to the success of the command.
  6285.  
  6286.                                     x print
  6287.  
  6288.     MAGNUM automatically keeps  a log of  activity for each  node in a  file
  6289.     called  ACTIVITY.x  (where x  is the  node number  in which  activity is
  6290.     being recorded).  This file grows substantially with time so you'll want
  6291.     to back it up if desired and delete it from time to time.  Note that  if
  6292.     you view the  activity log from  MAGNUM's sysop menu  when you're logged
  6293.     on,  you  will  be  viewing  the  log  backwards (most recent activities
  6294.     first).
  6295.  
  6296.     You may elect to simultaneously log to your printer what is happening on
  6297.     a given node as well as to this activity-log file.  To start doing  this
  6298.     for node 1, for example, enter:
  6299.  
  6300.        1 print
  6301.  
  6302.     To turn it off for node 1, enter:
  6303.  
  6304.        1 noprint
  6305.  
  6306.     If running MAGNUM as a multinode  system (more than 1 active node),  and
  6307.     printing  to  the  same  printer  for  both  nodes,  you need to use the
  6308.     spooler.   Be advised  the spooler  uses MUCH  RAM MEMORY,  and in  some
  6309.     cases, there may not be enough left to run MAGNUM as ancticpated.   This
  6310.     depends on how much RAM memory you have in your system to begin with.
  6311.  
  6312.                                    x lockout
  6313.  
  6314.     You can LOCK OUT any user currently online.  For example, if you  decide
  6315.     the user on node 2 is abusing the system, you can lock them out with:
  6316.  
  6317.        2 lockout
  6318.  
  6319.     The user  will be  denied subsequent  access.   To prevent  abusers from
  6320.     calling at all, consider running Magnum as a "closed" system.
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.  
  6328.  
  6329.  
  6330.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6331.  
  6332.  
  6333.  
  6334.     Page  5-6                                         MAGNUM's Sysop Console
  6335.                        The active, time, announce/normal, and logon commands
  6336.  
  6337.  
  6338.  
  6339.                                x active|inactive
  6340.  
  6341.     If you have an active node running that you'd like to make inactive,  or
  6342.     if you  have an  MBBSINIT.x file  defined for  a node  but that  node is
  6343.     currently not active, this command will let you toggle the current state
  6344.     of  the  node  to/from  active/inactive.    For  example, to make node 1
  6345.     inactive, enter the command:
  6346.  
  6347.        1 inactive
  6348.  
  6349.     To make node 2 an active node, enter the command:
  6350.  
  6351.        2 active
  6352.  
  6353.     Note that the "inactive" command takes place immediately if there is  no
  6354.     one online on that node at the time you issue the command, otherwise the
  6355.     command takes place after the current caller logs off.
  6356.  
  6357.                               time+nnn | time-nnn
  6358.  
  6359.     You can  increase or  decrease the  amount of  time a  user has left for
  6360.     their session with this command. nnn  is the number of minutes you  wish
  6361.     to increase  or decrease  their time  by.   For example,  if you wish to
  6362.     increase  the  time  for  the  user  on  node 1 by 20 minutes, enter the
  6363.     command:
  6364.  
  6365.        1 time+20
  6366.  
  6367.     If you wish to decrease the time  for the user on node 2 by  10 minutes,
  6368.     enter the command:
  6369.  
  6370.        2 time-10
  6371.  
  6372.     Note that this command is processed by the minute.  In other words,  the
  6373.     effect of this command may not be realized for up to 1 minute.
  6374.  
  6375.     NOTE: Changing the user's time via the Sysop Utilities (user area) will
  6376.           not work if the user being changed is currently logged on. You
  6377.           MUST use the "x TIME+nnn" or "x TIME-nnn" commands for a user
  6378.           who's currently logged on.
  6379.  
  6380.                                announce | normal
  6381.  
  6382.     This command changes a node from normal BBS operation to  announce-only,
  6383.     and vice versa.  If you wish to change node 1 from normal BBS  operation
  6384.     to announce-only, simply enter the command:
  6385.  
  6386.        1 announce
  6387.  
  6388.     Note that by doing  so, MAGNUM will answer  incoming calls as usual  but
  6389.     will display  the file  ANNOUNCE.1 (for  node 1,  ANNOUNCE.2 for node 2,
  6390.     etc) to  the caller  and then  hang up.   MAGNUM  will continue to be in
  6391.  
  6392.  
  6393.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6394.  
  6395.  
  6396.  
  6397.     MAGNUM's Sysop Console                                         Page  5-7
  6398.     The active, time, announce/normal, and logon commands
  6399.  
  6400.  
  6401.     announce only for  whatever node you  told it to  announce to until  you
  6402.     change it back with the following command:
  6403.  
  6404.        1 normal
  6405.  
  6406.     Note  that  the  ANNOUNCE.x  file  should  not  have  any  color or ANSI
  6407.     sequences in it since no one is allowed to log on, therefore, you  don't
  6408.     know if your caller has color capability or not.  The file(s) ANNOUNCE.x
  6409.     should be placed in  the PROGRAM DIRECTORY.   - - DO NOT  SET YOUR LOCAL
  6410.     NODE AS ANNOUNCE-ONLY!
  6411.  
  6412.     Every time an ANNOUNCE.x is sent to the remote caller, Magnum logs  this
  6413.     in a file called ANNOUNCE.LOG in your PROGRAM DIRectory.
  6414.  
  6415.                                     * logon
  6416.  
  6417.     As  mentioned  earlier,  you  can  log  on  locally (without a modem) by
  6418.     entering the command:
  6419.  
  6420.        * LOGON
  6421.  
  6422.     Currently, you will need to have a MBBSINIT.4 file in order to do  this.
  6423.     You can accomplish this by copying STARTUP.1 to STARTUP.4, then changing
  6424.     the NODE parm to 4 and recompiling with the MAKEMBBS.EXE program.  If
  6425.     you have the 9-node version of Magnum, STARTUP.9 is your local node.
  6426.  
  6427.     Alternately, you may log on to any of the logical nodes locally with:
  6428.  
  6429.        * LOGON x
  6430.  
  6431.     Where 'x' is the node# of the logical  node you wish to log on to.   You
  6432.     will still be on physical node 4 (console for 4-node version) or node  9
  6433.     (console for 9-node version), etc.   With this alternate method,  Magnum
  6434.     is simply using  the MBBSINIT.x file  for all of  its information rather
  6435.     than the MBBSINIT.4 or MBBSINIT.9  file.  Because each MBBSINIT.x  files
  6436.     can  be  its  own  separate  BBS  (with  its own databases by making the
  6437.     session directory unique from the  other nodes), this method of  logging
  6438.     on locally allows you  to be online as  though you were on  node x. It's
  6439.     also a great way to test  your MILC files if you have  different display
  6440.     files for  different nodes.   Note  that node  'x' does  not have  to be
  6441.     "active", nor do  you have to  wait until someone  on the real  node 'x'
  6442.     logs off.  You may log on to node 'x' locally anytime.
  6443.     NOTE: In the MBBS.EXE display screen, on the far right of the same line
  6444.           as the date and time, MBBS will show you the node number(s) of the
  6445.           node(s) currently having a caller logged on. For example, if
  6446.           callers are on nodes 1 and 3, MBBS will show 1,3. If your console
  6447.           node is node 4 (4-node version) and you log onto node 4 (* LOGON),
  6448.           MBBS will show 1,3,4(4). The 4 (in the 4-node version) indicates
  6449.           console node, and the parenthesized number next to it shows
  6450.           logical node. If you logged on to node 2 locally (ie: * LOGON 2),
  6451.           then MBBS would show 1,3,4(2).
  6452.  
  6453.  
  6454.  
  6455.  
  6456.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6457.  
  6458.  
  6459.  
  6460.     Page  5-8                                         MAGNUM's Sysop Console
  6461.                                   The endnow, end, shutdown and msg commands
  6462.  
  6463.  
  6464.  
  6465.                                     * endnow
  6466.  
  6467.     You can end MAGNUM BBS immediately by entering the command:
  6468.  
  6469.        * endnow
  6470.  
  6471.     This  will  cause  MAGNUM  to  emulate  a  dropped  carrier on all nodes
  6472.     currently in session,  then finally end  the program and  return back to
  6473.     the OS/2 command line or to the OS/2 start programs menu.
  6474.  
  6475.                                      * end
  6476.  
  6477.     To shut down MAGNUM BBS after the last caller's session ends, enter  the
  6478.     command:
  6479.  
  6480.        * end
  6481.  
  6482.     Note that if  2 or more  people are online,  MAGNUM will deactivate  the
  6483.     comport  of  each  line   after  each  respective  session   ends,  thus
  6484.     disallowing further calls.   When the  last user logs  off, MAGNUM shuts
  6485.     down and  returns you  to the  OS/2 command  line or  to the  OS/2 start
  6486.     programs menu.
  6487.  
  6488.                             x shutdown | * shutdown
  6489.  
  6490.     You can  tell MAGNUM  to shut  down any  or all  nodes with the SHUTDOWN
  6491.     command.   Simply enter  the shutdown  command followed  by the time you
  6492.     wish MAGNUM to shut down that node (or all nodes).  The time must be  in
  6493.     24-hour format.  For example, assuming  it is 2:00 PM now, and  you wish
  6494.     to shut down MAGNUM at 2:15 PM, you would enter the command:
  6495.  
  6496.        * shutdown 14:15
  6497.  
  6498.     MAGNUM would then send the following message to all users on any of  the
  6499.     nodes:
  6500.  
  6501.        << System going down in 15 minutes >>
  6502.  
  6503.     MAGNUM will send the "system  going down" messages every 5  minutes from
  6504.     this point until 5 minutes are  left, then at 1 minute intervals.   When
  6505.     the time is reached, MAGNUM  shuts down all nodes and  terminates itself
  6506.     regardless of who's online or what they're doing.
  6507.  
  6508.     Note that MAGNUM doesn't send any "system going down" messages until  30
  6509.     minutes  before  shutdown  is  scheduled.    It then sends another at 20
  6510.     minutes, then 15, 10, 5, 4, 3, 2, and 1 minute remaining.  Note that  if
  6511.     there is less than 20 minutes to shutdown and no one is on a  particular
  6512.     node, MAGNUM shuts down that node anyway.
  6513.  
  6514.     Instead of shutting down all  nodes, you can shut down  individual nodes
  6515.     by using the  node number instead  of the *.  For example, you  can shut
  6516.     down node 2 by entering:
  6517.  
  6518.  
  6519.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6520.  
  6521.  
  6522.  
  6523.     MAGNUM's Sysop Console                                         Page  5-9
  6524.     The endnow, end, shutdown and msg commands
  6525.  
  6526.  
  6527.  
  6528.        2 shutdown 05:28
  6529.  
  6530.     This will schedule node  2 to shutdown at  5:28 (AM).  MAGNUM  will send
  6531.     "system going down" messages to  this node starting 30 minutes  prior to
  6532.     shutdown.   If no  one is  on the  node within  10 minutes  of shutdown,
  6533.     MAGNUM will shut the node down anyway.
  6534.  
  6535.     To  reactivate  a  shut-down  node,  for  example,  node  2,  enter  the
  6536.     following:
  6537.  
  6538.        2 active
  6539.  
  6540.     To cancel a shut-down in progress (ie:   node 2 will be shut down  in xx
  6541.     minutes), enter the following:
  6542.  
  6543.        2 shutdown cancel
  6544.  
  6545.     This is a powerful command and will not pay any attention to what  users
  6546.     are doing.   When  the shutdown  time reaches  it's scheduled  time, all
  6547.     nodes (or  the particular  node) being  shut down  will emulate  dropped
  6548.     carrier!
  6549.  
  6550.                         x msg "string" | * msg "string"
  6551.  
  6552.     The MSG command sends a quick and dirty message from the console to  any
  6553.     or  all  ports.    "string"  (without  quotes)  is  the contents of your
  6554.     message.  For example, to send a quick message to node 1, simply enter:
  6555.  
  6556.        1 msg Please update your telephone number!
  6557.  
  6558.     To send a quick message to all nodes, simply enter:
  6559.  
  6560.        * msg I'm starting a group conference - please go to the GROUP CHAT
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575.  
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6583.  
  6584.  
  6585.  
  6586.     Page  5-10                                        MAGNUM's Sysop Console
  6587.                                                       miscellaneous commands
  6588.  
  6589.  
  6590.  
  6591.     If you're running MBBS as a fullscreen text app, or you've blown up it's
  6592.     window to full size, the commands we've just described above will appear
  6593.     on the bottom 5  lines of the MBBS  display screen.  These  are the most
  6594.     commonly used  commands.   There are  a few  other commands which you'll
  6595.     probably use less often which  we'll cover now.  Although  premature for
  6596.     you to understand the following commands, you should scan them over  for
  6597.     now, then return here for  a better understanding once you  complete the
  6598.     chapter on ACE (automatic command execution) - Magnum's event handler.
  6599.  
  6600.                    Executing another program from within MBBS
  6601.  
  6602.     You can  execute another  program from  within MBBS.EXE  by starting the
  6603.     command with the  * character, and  then providing the  program name and
  6604.     it's  parameters  within  doublequotes  (the  " character) followed by a
  6605.     comma and one of WAIT, NOWAIT or DETACH.  For example:
  6606.  
  6607.        * "program.exe parms",WAIT
  6608.  
  6609.     This would run "program.exe" while  MBBS WAITs for it to  complete, then
  6610.     returns back  to normal  BBS operation.   A  program run  with the  WAIT
  6611.     parameter causes  MBBS to  save the  present screen  image, and halt all
  6612.     further MBBS execution  (will not have  any effect on  currently running
  6613.     sessions) until the program completes  - at which point the  screen will
  6614.     be restored and normal BBS operation will resume.
  6615.  
  6616.     Running  a  program  with  the  NOWAIT  parameter causes the program you
  6617.     specify to run concurrently with MBBS - normal MBBS operation is resumed
  6618.     immediately and  the present  screen image  is not  saved.   Any program
  6619.     started in  such a  fashion must  NOT write  to the  screen (or stdin or
  6620.     stdout), or expect  any input from  the console (or  keyboard).  If  the
  6621.     program you're running does write  to the screen, you can  redirect it's
  6622.     output with the >  character.  For example,  to redirect all output  for
  6623.     the program, you might enter a command such as:
  6624.  
  6625.        * "program.exe parms 1>nul 2>nul",WAIT
  6626.  
  6627.     which  redirects  stdout  (handle=1)  and  stderr  (handle=2)  to nul (a
  6628.     nonexistent dummy file name used by OS/2).  Just a simple redirection of
  6629.     ">nul" which was  good enough for  DOS (redirected stdout  and stderr to
  6630.     nul) will not work with OS/2 - instead ">nul" to OS/2 means the same  as
  6631.     "1>nul" which will only redirect stdout but not stderr.
  6632.  
  6633.     Running a program with the  DETACH parameter is identical to  running it
  6634.     with the  WAIT parameter  except that  the program  will continue to run
  6635.     even  if  MBBS  terminates.    The  program  can  do screen I/O only via
  6636.     VioPopUp() calls.
  6637.  
  6638.                             The "* REFRESH" command
  6639.  
  6640.     In  the  event  you've  run  another  program  with the NOWAIT or DETACH
  6641.     parameter and forgot to reroute it's output, thus causing it to write to
  6642.     the screen, you can refresh the  screen with this command - it  won't be
  6643.  
  6644.  
  6645.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6646.  
  6647.  
  6648.  
  6649.     MAGNUM's Sysop Console                                        Page  5-11
  6650.     miscellaneous commands
  6651.  
  6652.  
  6653.     the last  screen but  it will  at least  get rid  of the output from the
  6654.     externally running program.
  6655.  
  6656.                             The "* ACE INIT" command
  6657.  
  6658.     This command will cause MBBS to re-read the MBBS.ACE file,  over-writing
  6659.     any  ACE  commands  that  were  queued  for  timed execution.  When this
  6660.     command is issued,  any ACE "immediate"  commands contained in  the file
  6661.     will be ignored  - this insures  that duplicate copies  of programs will
  6662.     not be started.  All previously stored ACE commands will be purged prior
  6663.     to re-reading the MBBS.ACE file.
  6664.  
  6665.                               The "x TOP" command
  6666.  
  6667.     Although we touched on this command earlier, this command will basically
  6668.     be used by  those running our  9-node system (8  comports + console)  or
  6669.     17-node  system  (16  comports  +  console).   Because MBBS only shows 3
  6670.     consecutive nodes on the sysop display at any given time, you can  bring
  6671.     any node to the top of the display with this command.  For example,  the
  6672.     command "5 TOP" will display nodes 5, 6 and 7 on the sysop console.   In
  6673.     the  4-node  version,  "2  TOP"  and  "1  TOP"  are  the only acceptable
  6674.     commands.  In the  2-node version, the TOP  command is unavailable.   In
  6675.     the 9-node version, "X TOP" can be  issued where X is a value from  1 to
  6676.     7. In the 17-node version, X can range from 1 to 15.  In the 9-node  and
  6677.     17-node versions, Magnum will automatically change the top display  node
  6678.     itself on  an incoming  call that  is not  already one  of the  3 in the
  6679.     current display.  For  example, if your TOP  node is 5 (ie:   displaying
  6680.     node information for nodes  5, 6 and 7),  and a caller calls  on node 2,
  6681.     Magnum will internally issue a "1  TOP" command resulting in nodes 1,  2
  6682.     and 3 being displayed.  In other words, Magnum issues an "x top" command
  6683.     where 'x' is the lowest node number which would also include display  of
  6684.     the new caller.  The 17-node  version allows the use of the  TOP command
  6685.     when in  condensed mode,  whereas all  other versions  disregard the TOP
  6686.     command in  condensed mode  (see "*  CONDENSE ON"  and "*  CONDENSE OFF"
  6687.     commands).
  6688.  
  6689.                             The "* SYSBELL" command
  6690.  
  6691.     Sometimes it can become annoying to hear the sounds Magnum makes when  a
  6692.     caller's session is about  to be started.   The "* SYSBELL OFF"  command
  6693.     will deactivate these sounds, likewise, the "* SYSBELL ON" command  will
  6694.     turn  them  back  on  again.    Do  not  confuse  this  command with the
  6695.     NOBELL/BELL commands which apply to  the session - SYSBELL only  applies
  6696.     to the Sysop console (MBBS.EXE) whereas NOBELL applies to MSESSION.EXE.
  6697.  
  6698.                               The "* HELP" command
  6699.  
  6700.     When running MBBS.EXE as a fullscreen  text app (or as a maximized  text
  6701.     window), the sysop commands appear  at the bottom of your  screen/window
  6702.     in the last 4  lines of display.   However, there isn't room  for all of
  6703.     the commands to  appear in the  last 4 lines,  therefore, "* HELP"  will
  6704.     display the next set of  4 lines summarizing additional commands.   Each
  6705.     time you enter "*  HELP" (or "x INFO"),  the HELP display at  the bottom
  6706.  
  6707.  
  6708.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6709.  
  6710.  
  6711.  
  6712.     Page  5-12                                        MAGNUM's Sysop Console
  6713.                                                       miscellaneous commands
  6714.  
  6715.  
  6716.     will alternate.
  6717.  
  6718.                            The "x BLOCKWRITE" command
  6719.  
  6720.     The "x BLOCKWRITE" command enables/disables block writes for node x. For
  6721.     example, the command "2 BLOCKWRITE ON" would enable blockwrites for node
  6722.     2, while the  command "2 BLOCKWRITE  OFF" would disable  blockwrites for
  6723.     node 2.
  6724.  
  6725.                              The "* COLOR" command
  6726.  
  6727.     This command  doesn't affect  BBS operation,  it simply  sets the colors
  6728.     used by  MBBS.EXE which  you might  rather use  than the default colors.
  6729.     The syntax is "* COLOR UPDT MSG EXIT", where:
  6730.  
  6731.        UPDT is the color of the update information printed on the sysop
  6732.             console for the three nodes being currently displayed.
  6733.         MSG is the color of any messages printed just below the "Command =>"
  6734.             prompt.
  6735.        EXIT is the color Magnum will reset your screen to upon exit.
  6736.  
  6737.     The value of the colors for all three parms can be one of 1 to 7 or 9 to
  6738.     15 according to the following color table:
  6739.  
  6740.           0 - UNUSED        8 - UNUSED
  6741.           1 - blue          9 - bright blue
  6742.           2 - green        10 - bright green
  6743.           3 - cyan         11 - bright cyan
  6744.           4 - red          12 - bright red
  6745.           5 - magenta      13 - bright magenta
  6746.           6 - brown        14 - yellow
  6747.           7 - white        15 - bright white
  6748.  
  6749.     For example, the command:
  6750.  
  6751.        * COLOR 11 12 7
  6752.  
  6753.     would set the UPDATE color to 11 (bright cyan),
  6754.               the   MSG  color to 12 (bright red),
  6755.           and the  EXIT  color to 7 (white).
  6756.  
  6757.     The settings used in  this example also happen  to be the default  color
  6758.     settings.  As with all other  default system settings, you can put  this
  6759.     command  as  an  'immediate  command'  in  your  MBBS.ACE  file with the
  6760.     parameters to match whatever colors you choose.
  6761.  
  6762.                The "* CONDENSE ON" and "* CONDENSE OFF" commands
  6763.  
  6764.     The condensed  mode of  operation is  mainly for  those using the 9-node
  6765.     version of Magnum  BBS or higher.   Although it  will also work  for the
  6766.     4-node version.  The "* CONDENSE ON" command tells MBBS to display  only
  6767.     the state of all nodes (ie:  ACTIVE, INACTIVE, who's on the node,  etc).
  6768.     In other words,  instead of each  node having 3  text lines of  display,
  6769.  
  6770.  
  6771.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6772.  
  6773.  
  6774.  
  6775.     MAGNUM's Sysop Console                                        Page  5-13
  6776.     miscellaneous commands
  6777.  
  6778.  
  6779.     each node will only have 1 text  line of display.  The "* CONDENSE  OFF"
  6780.     command returns MBBS to  the default 3 text  lines of display per  node.
  6781.     The advantage of 1 text line per  node is that you can see who's  on all
  6782.     nodes without having to  issue a "x TOP"  command.  The disadvantage  is
  6783.     that you don't  know what the  users of each  node are currently  doing.
  6784.     This command  is geared  for the  9-node version  of Magnum  and higher.
  6785.     Users of the 4-node version will probably not have much use (if any) for
  6786.     this command. Users of the 17-node version can issue the "x TOP" command
  6787.     for consecutive display of any 9 nodes.
  6788.  
  6789.                 The "* PRTY class level" and "* PRTY ?" commands
  6790.  
  6791.     The priority class and level of MBBS.EXE (the Magnum PARENT program) can
  6792.     be set with this command.   Note the syntax uses the space  character to
  6793.     delimit the parameters (no commas).  The priority class can range from 1
  6794.     to 4  where 1=Idle  Time Class,  2=Regular Time  Class, 3=Time  Critical
  6795.     Class, and  4=Foreground Class.   The  level within  the class can range
  6796.     from  0  to  31  where  0  is  the  lowest  level within a class (lowest
  6797.     priority) and 31 is the highest level within a class.  Unless you are  a
  6798.     system  administrator  or  other  individual  experienced in fine tuning
  6799.     systems with priority levels and classes, this should remain at Class 2,
  6800.     Level 0  (* PRTY  2 0).   Note  that you  can query the current priority
  6801.     class and level with the command "* PRTY ?".
  6802.     NOTE: Do not confuse this command with the PRTY_CLASS and PRTY_LEVEL
  6803.           parameters in your STARTUP.x file(s). Those are for the priority
  6804.           classes and levels of MSESSION.EXE (individual user sessions).
  6805.  
  6806.        The "* PLAY x" command and Recording a Session for later playback
  6807.  
  6808.     This command is similar  to the "* LOGON  x" command but "plays  back" a
  6809.     previously recorded sysop session.   The 'x', although optional, is  the
  6810.     node#, and if not supplied will  default to the console node (node  2 in
  6811.     the 2-node version, 4 in the 4-node version, etc).  To record a  session
  6812.     for playback,  use the  "* LOGON  x" command  and log  on as  usual (you
  6813.     cannot record a session from any node other than the console node).  Log
  6814.     on as  ID //0  (sysop) and  note the  double slash  instead of  a single
  6815.     slash.  When  you've logged on  this way, you'll  get a message  stating
  6816.     "Invalid  ID"  and  a  note  that  the  session is being recorded.  When
  6817.     re-prompted for your ID, proceed to log on as usual.  Everything will be
  6818.     recorded to a file for later playback with the "* PLAY x" command.  Note
  6819.     that the 'x'  in the LOGON  and the PLAY  command determines which  file
  6820.     number to record or play back.
  6821.     NOTE: When recording a session, DO NOT stop any displays with <Ctrl-X>
  6822.           or the spacebar character! DO NOT run external programs requiring
  6823.           anything other than command-line arguments (no interactive pgms).
  6824.           The purpose of recording a session is to automate packing of the
  6825.           databases with an MBBS 'ACE' command, where "* PLAY x" would be
  6826.           the ACE command. See the chapter on ACE (Automatic Command
  6827.           Execution - Magnum's Event Handler).
  6828.  
  6829.                       The "x YELL" and "x NOYELL" commands
  6830.  
  6831.     Although  Magnum  abides  by  the  Sysop  paging hours in your STARTUP.x
  6832.  
  6833.  
  6834.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6835.  
  6836.  
  6837.  
  6838.     Page  5-14                                        MAGNUM's Sysop Console
  6839.                                                       miscellaneous commands
  6840.  
  6841.  
  6842.     file(s), you can override this with the YELL and NOYELL commands  (where
  6843.     'x' is the  node number).   For example, to  turn off the  ability for a
  6844.     remote user to page the Sysop  on node 2, issue the command  "2 NOYELL".
  6845.     To turn on the ability to page the Sysop on node 2, issue the command "2
  6846.     YELL".  Note that when NOYELL  is issued on a node, it  disregards Sysop
  6847.     paging hours and dissallows the ability for the Sysop to be paged.  When
  6848.     YELL is issued, Magnum abides by the Sysop Paging hours specified in the
  6849.     STARTUP.x file for node x.
  6850.  
  6851.                     The "x ONHOOK" and "x OFFHOOK" commands
  6852.  
  6853.     You can send ONHOOK and OFFHOOK  commands to your modem.  By  sending an
  6854.     OFFHOOK command,  it's like  physically lifting  your telephone  off the
  6855.     hook and letting it sit there (any callers will get a busy signal).   If
  6856.     you issue an ONHOOK command, it's  like hanging up the phone (the  modem
  6857.     is ready to receive  calls).  NOTE:   Unless you have an  external modem
  6858.     with lights that  indicate whether your  modem is onhook  or offhook, we
  6859.     suggest you avoid the use of these commands.
  6860.  
  6861.                        The "* RMAIL node:userid" command
  6862.  
  6863.     This command starts the RMAIL process (Magnum-to-Magnum remote mail
  6864.     exchange) with another Magnum BBS system. Refer to the chapter on
  6865.     Magnum-to-Magnum Remote Mail.
  6866.  
  6867.                  The "x CALLS MAIL" and "x CALLS ALL" commands
  6868.  
  6869.     The "x CALLS MAIL" command sets node x such that only MAIL accounts will
  6870.     be granted access  to the system  on node x.  Any USER accounts  will be
  6871.     denied access.  Optionally, the file NOTMAIL.x in your PROGRAM DIRectory
  6872.     (if it exists) will be displayed to a USER prior to denying access  when
  6873.     the node is in 'mail only' mode.
  6874.  
  6875.     The "x CALLS ALL"  deactivates "mail only" mode.   When this command  is
  6876.     issued for  node x,  node x  will accept  ALL caller  types (MAIL and/or
  6877.     USER).
  6878.  
  6879.                           The "* LOGOCOLOR x" command
  6880.  
  6881.     where 'x' is a number ranging from 1 to 15.  The color value is the same
  6882.     as the values of the * COLOR statement.  This command changes the  color
  6883.     of the logo appearing at the top of the screen.  This command is used if
  6884.     the default color does not show up on monochrome screens.
  6885.  
  6886.                           The "* FRAMECOLOR x" command
  6887.  
  6888.     where 'x' is a number ranging from 1 to 15.  The color value is the same
  6889.     as the values of the * COLOR statement.  This command changes the  color
  6890.     of the frames appearing around the node displays.  This command is  used
  6891.     if the default color does not show up on monochrome screens.
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6898.  
  6899.  
  6900.  
  6901.     MAGNUM's Sysop Console                                        Page  5-15
  6902.     CHATting between SYSOP (you) and a USER via the Console
  6903.  
  6904.  
  6905.  
  6906.     To chat with a remote user,  simply SWITCH to their session (make  their
  6907.     session  the  foreground  process).    When  their  session  is  in  the
  6908.     foreground, press your <F7> key and both you and the user will be placed
  6909.     in  SYSCHAT  mode  (Sysop  Chat  with  User).   Note that if the user is
  6910.     entering a message at the time you press <F7>, the chat will be  delayed
  6911.     until the user finishes message entery, otherwise chat will take  effect
  6912.     at the very next system prompt the  user gets.  To end the chat,  simply
  6913.     press your <F7> key again.  Note that all text which transpires  between
  6914.     you and the remote user during SYSCHAT will be logged to the SYSCHAT.LOG
  6915.     file in your SYSOUT directory.
  6916.  
  6917.  
  6918.  
  6919.  
  6920.  
  6921.  
  6922.  
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  
  6928.  
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934.  
  6935.  
  6936.  
  6937.  
  6938.  
  6939.  
  6940.  
  6941.  
  6942.  
  6943.  
  6944.  
  6945.  
  6946.  
  6947.  
  6948.  
  6949.  
  6950.  
  6951.  
  6952.  
  6953.  
  6954.  
  6955.  
  6956.  
  6957.  
  6958.  
  6959.  
  6960.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  6961.  
  6962.  
  6963.  
  6964.     Page  5-16                                        MAGNUM's Sysop Console
  6965.                                               TEST Mode (Testing your modem)
  6966.  
  6967.  
  6968.  
  6969.     This command will  rarely be used.   However, setting  up a BBS  for the
  6970.     first time can be  frustrating.  BBS software  must be able to  interact
  6971.     with  your  particular  modem.    Sysops  are  not  expected to be modem
  6972.     experts, nor should they  have to be.   Sometimes, due to the  nature of
  6973.     BBS and modem relationships, problems will develop during initial setup.
  6974.     Therefore, we've  included a  TEST mode  for any  problems which  may be
  6975.     encountered when setting up a new modem.
  6976.  
  6977.     The syntax of TEST mode is "x  TEST".  For example, to put the  modem on
  6978.     node 1 into test  mode, you'd enter the  following command on the  Sysop
  6979.     command line:
  6980.  
  6981.        1 TEST
  6982.  
  6983.     Once in  TEST mode,  brief instructions  will appear  which are all self
  6984.     explanatory.  Basically, you'll start  with the /INIT command and  watch
  6985.     for the digit 0 (zero) being displayed after each STARTUP string sent to
  6986.     your modem.   If  you don't  get a  0 back  from a particular string, it
  6987.     indicates  a  problem  with  that  string.   Contact Gilmore Systems for
  6988.     further information regarding TEST mode.
  6989.  
  6990.     CAUTIONS: - DO NOT USE THIS MODE TO DIAL OUT WITH. THE RESULTS WILL BE
  6991.                 UNPREDICTABLE!
  6992.               - AS WITH ALL OTHER SYSOP COMMANDS, MBBS.EXE WILL REMAIN IN
  6993.                 A "FROZEN" STATE UNTIL YOU ARE THROUGH WITH TEST MODE (ie:
  6994.                 will not recognize incoming calls).
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000.  
  7001.  
  7002.  
  7003.  
  7004.  
  7005.  
  7006.  
  7007.  
  7008.  
  7009.  
  7010.  
  7011.  
  7012.  
  7013.  
  7014.  
  7015.  
  7016.  
  7017.  
  7018.  
  7019.  
  7020.  
  7021.  
  7022.  
  7023.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7024.  
  7025.  
  7026.  
  7027.     Back to Display Files & Subdirectories                         Page  6-1
  7028.     The PROGRAM DIRECTORY
  7029.  
  7030.  
  7031.  
  7032.     Within the PROGRAM DIRECTORY, the following files should be found:
  7033.  
  7034.     MBBS.EXE     - The main (parent) program for MAGNUM BBS. This is the
  7035.                    program that you will start in order to start the BBS.
  7036.  
  7037.     MSESSION.EXE - The child program that MAGNUM (mbbs.exe) calls for each
  7038.                    session.
  7039.  
  7040.     PUTFILES.EXE - The child program that MAGNUM (mbbs.exe) calls for
  7041.                    sending files when a user chooses the [D]ownload option.
  7042.  
  7043.     GETFILES.EXE - The child program that MAGNUM (mbbs.exe) calls for
  7044.                    receiving files when a user chooses the [U]pload option.
  7045.  
  7046.              NOTEs about GETFILES.EXE and PUTFILES.EXE:
  7047.  
  7048.              Monitoring of Carrier has been re-established for file xfers  -
  7049.              this has  caused some  problems in  the past  (version 1.0x  of
  7050.              Magnum,  mainly  on  IBM  PS/2  machines  with EE) and has been
  7051.              removed ever  since.   If monitoring  of carrier  is causing  a
  7052.              problem for you, you can remove (or implement) this  monitoring
  7053.              of  DCD  (data  carrier   detect)  by  setting  the   following
  7054.              ENVIRONMENT variable PRIOR to starting Magnum (mbbs.exe) on the
  7055.              OS/2 command line (or in a .CMD file that starts Magnum):
  7056.  
  7057.               SET DCDXFR=FALSE  (turns off monitoring of DCD for file xfers)
  7058.               SET DCDXFR=TRUE   (turns on monitoring of DCD for file xfers)
  7059.  
  7060.              If  the  environment  variable  DCDXFR  is  not found (ie:  not
  7061.              defined), the default is to turn ON monitoring of DCD for  file
  7062.              xfers (just as though  you've defined SET DCDXFR=TRUE).   Also,
  7063.              for  your  convenience,  any  of  the  following  parms are all
  7064.              acceptable:
  7065.  
  7066.              To turn OFF monitoring of DCD for file xfers:
  7067.  
  7068.                    SET DCDXFR=FALSE
  7069.               or   SET DCDXFR=OFF
  7070.               or   SET DCDXFR=NO
  7071.               or   SET DCDXFR=N
  7072.               or   SET DCDXFR=0
  7073.  
  7074.            To turn ON monitoring of DCD for file xfers:
  7075.  
  7076.                    SET DCDXFR=TRUE
  7077.               or   SET DCDXFR=ON
  7078.               or   SET DCDXFR=YES
  7079.               or   SET DCDXFR=Y
  7080.               or   SET DCDXFR=1
  7081.  
  7082.     MAKEMBBS.EXE - The configuration compiler/de-compiler. This is the
  7083.                    program that compiles your STARTUP.x files into
  7084.  
  7085.  
  7086.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7087.  
  7088.  
  7089.  
  7090.     Page  6-2                         Back to Display Files & Subdirectories
  7091.                                                        The PROGRAM DIRECTORY
  7092.  
  7093.  
  7094.                    MBBSINIT.x files, or de-compiles your MBBSINIT.x files
  7095.                    into STARTUP.x files.
  7096.  
  7097.     MBBSEXEC.EXE - This is the MBBS executive progam utility for sysops
  7098.                    which not only simplifies maintenance, but also provides
  7099.                    a very powerful, flexible programming language with which
  7100.                    the Sysop of a Magnum BBS can use to define his/her
  7101.                    maintenance needs.
  7102.  
  7103.     RJEMONIT.EXE - This is a daemon process which monitors RJE jobs started
  7104.                    by Magnum. A daemon process is a program which runs in
  7105.                    the background continually until your computer is either
  7106.                    shut off or rebooted. A daemon process cannot be selected
  7107.                    or "switched to" because it's running as a detached
  7108.                    process. A separate copy of RJEMONIT.EXE is invoked only
  7109.                    once for each node. The original invokation happens only
  7110.                    when the 1st user on any node chooses the [L]ist/Execute
  7111.                    function of the RJE section, or the first time the @E1
  7112.                    command is encountered. Once it's started, Magnum knows
  7113.                    it's running and will never start it again unless the
  7114.                    system has been rebooted. RJEMONIT.EXE will be invoked
  7115.                    once for each node, and only if the @E1 MILC command or
  7116.                    the [L]ist/Execute function has been selected in the RJE
  7117.                    menu for that node. The RJEMONIT.EXE program is
  7118.                    responsible for updating the RJE database when RJE job(s)
  7119.                    complete - regardless of whether the user is online, or
  7120.                    even if your BBS system is running or not.
  7121.  
  7122.     STOPMBBS.EXE - These programs are used to immediately stop ALL actively
  7123.     & STOPRJE.EXE  running copies of MBBS.EXE and LOCALBBS.EXE (LAN Local
  7124.                    Logon Module) and their associated MSESSION.EXE programs;
  7125.                    AND all actively running RJEMONIT.EXE programs. For more
  7126.                    information on the use of these programs, execute the
  7127.                    program without parms.
  7128.  
  7129.     KILLPROC.EXE - This program is used internally by Magnum, however, you
  7130.                    may find this program of use to you too. For more
  7131.                    information on the use of this program, execute it
  7132.                    without parms.
  7133.  
  7134.     MBBSINIT.x   - The output files that MAKEMBBS.EXE creates from your
  7135.                    STARTUP.x files. No node can run without a matching
  7136.                    MBBSINIT.x file, where x is the node number.
  7137.  
  7138.     STARTUP.x    - The human-readable source file which will serve as input
  7139.                    to the MAKEMBBS.EXE program. MAKEMBBS.EXE converts these
  7140.                    files to MBBSINIT.x files.
  7141.  
  7142.     ANNOUNCE.x   - A simple text file (where x is the node number the file
  7143.                    will be used on). This file contains an announcement and
  7144.                    is displayed when the node is in "announce-only" mode.
  7145.                    Do not use any ANSI escape sequences or color in this
  7146.                    file!
  7147.  
  7148.  
  7149.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7150.  
  7151.  
  7152.  
  7153.     Back to Display Files & Subdirectories                         Page  6-3
  7154.     The PROGRAM DIRECTORY
  7155.  
  7156.  
  7157.  
  7158.     MBBS.ACE     - A text file containing Magnum ACE (Automatic Command
  7159.                    Execution) commands. Read by MBBS.EXE upon startup.
  7160.                    Commands in this file can be a combination of "immediate"
  7161.                    (commands to be executed right away) and queued commands
  7162.                    (commands to be stored for later, timed execution on
  7163.                    certain days and times).
  7164.  
  7165.     ACE.LOG      - Generated by MBBS.EXE - this file contains the log of any
  7166.                    ACE commands which were executed by MBBS.EXE including
  7167.                    the date and time of execution.
  7168.  
  7169.     UTILIZ.DAT   - This file contains utilization information about your
  7170.                    system. It will not exist until after your first logon.
  7171.                    An external child (door) program is in the works which
  7172.                    will process the data in this file. For those interested
  7173.                    in the record layout of this file please contact us for
  7174.                    further information.
  7175.  
  7176.  
  7177.  
  7178.  
  7179.  
  7180.  
  7181.  
  7182.  
  7183.  
  7184.  
  7185.  
  7186.  
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  
  7192.  
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  
  7199.  
  7200.  
  7201.  
  7202.  
  7203.  
  7204.  
  7205.  
  7206.  
  7207.  
  7208.  
  7209.  
  7210.  
  7211.  
  7212.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7213.  
  7214.  
  7215.  
  7216.     Page  6-4                         Back to Display Files & Subdirectories
  7217.                                                        The SESSION DIRECTORY
  7218.  
  7219.  
  7220.  
  7221.     Within the SESSION DIRECTORY, the following files should be found:
  7222.  
  7223.     SPLITKEY.EXE - This program rebuilds *.KEY files from your USER.DAT
  7224.                    (user database) file.
  7225.                    The SPLITKEY.EXE program will reject all LastName's not
  7226.                    starting with one of the following characters:
  7227.                        - alphanumeric (A-Z, a-z, 0-9)
  7228.                        - underscore ( _ ) character
  7229.                        - dollar ( $ ) character
  7230.                    If the last name of any record does not start with one of
  7231.                    these characters, the record for this file will not be
  7232.                    rebuilt into a key file, but the last name will change to
  7233.                    ERRORxxxxx (where xxxxx is the ID of that user account).
  7234.                    NOTE: If you change someone's LAST NAME, whether with
  7235.                          MBBSEXEC.EXE or via the Sysop menu, you'll need to
  7236.                          rerun SPLITKEY.EXE, however, you can save time by
  7237.                          running it with the first initial of the user's
  7238.                          last name (before & after). For example, if you
  7239.                          change one of your user's last name from DOE to
  7240.                          SMITH, you would run SPLITKEY twice as follows:
  7241.                               SPLITKEY  D
  7242.                               SPLITKEY  S
  7243.                          This causes the SPLITKEY program to rebuild
  7244.                          USER_D.KEY and USER_S.KEY files.
  7245.  
  7246.     AMMO.MAG - Refer to the chapter on Remote Mail.
  7247.  
  7248.     NOCHANGE.LST - The [E]nvironment section of the main menu (where users
  7249.                    can change their system/personal paramters) is now
  7250.                    configurable by the Sysop as to which parameters may/may
  7251.                    not be changed. If you wish all parameters to be
  7252.                    changeable (as before), then do nothing! Otherwise,
  7253.                    create the file NOCHANGE.LST in your SESSION DIRectory.
  7254.                    This file is an ASCII text file which contains the
  7255.                    numbers (1 thru 24 in this release) of which parameters
  7256.                    you do NOT want your users to be able to change! For
  7257.                    example, if you don't want users to be able to change
  7258.                    System compression type (choice 1) or their birthdate
  7259.                    (choice 11), then the file NOCHANGE.LST would contain the
  7260.                    two menu numbers as follows:
  7261.                         1
  7262.                         11
  7263.                    The format of the file is one menu number per text line.
  7264.  
  7265.     BADNAME.LST  - This ASCII text file contains a list of UNallowable logon
  7266.                    names - one name per line, no imbedded spaces. See the
  7267.                    enclosed BADNAME.LST for an example.
  7268.  
  7269.     BADUPLD.LST  - This ASCII text file contains a list of UNallowable
  7270.                    filenames for upload - one name per line. Wildcards * and
  7271.                    ? are acceptable. Note that a semicolon (;) starts a
  7272.                    comment. In the event that a user tries to upload a file
  7273.  
  7274.  
  7275.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7276.  
  7277.  
  7278.  
  7279.     Back to Display Files & Subdirectories                         Page  6-5
  7280.     The SESSION DIRECTORY
  7281.  
  7282.  
  7283.                    who's filename matches one of those in this list, the
  7284.                    upload will be dissallowed. If the match is followed by
  7285.                    a comment (';' character), the comment will display,
  7286.                    otherwise Magnum will generate a message to the user.
  7287.                    An example BADUPLD.LST file might look like the
  7288.                    following:
  7289.                                *.EXE ; Please 'ARC' or 'ZIP' all uploads!
  7290.                                *.COM
  7291.                                *.LZH
  7292.                                PMDIARY?.* ; IBM internal pgm - not public!
  7293.                                PM-DIARY.* ; IBM internal pgm - not public!
  7294.                                CMD.EXE    ; License required to distribute!
  7295.  
  7296.     NOANSCHK.LST - Magnum checks your  SESSION DIRectory for  a file by  the
  7297.                    name of  NOANSCHK.LST (which  you optionally  create with
  7298.                    your text editor).   If it  finds it, it  checks the file
  7299.                    for filename  extensions NOT  to check  for harmful  ANSI
  7300.                    escape sequences after a file upload.  The file  contents
  7301.                    of of NOANSCHK.LST may look similar to the following:
  7302.  
  7303.                       ARC
  7304.                       ZIP
  7305.                       LZH
  7306.                       ZOO
  7307.                       GIF
  7308.                       BMP
  7309.  
  7310.                    Bascially, the contents of the file are the extensions of
  7311.                    filenames NOT to  run an ANSI  escape sequence check  on.
  7312.                    Because many compressed files  (such as ARC and  ZIP) can
  7313.                    inadvertantly reproduce a harmful ANSI escape sequence to
  7314.                    redefine a keyboard key when  typed to the screen, it  is
  7315.                    almost  meaningless  to  check  a compressed file because
  7316.                    once uncompressed into  its individual members,  this may
  7317.                    not  be  the  case.    It's  okay  to  check  files  with
  7318.                    extensions  of  EXE  and  COM  because  they  may contain
  7319.                    embedded  sequences,  however,  binary  files  can   also
  7320.                    inadvertantly  reproduce  one  of  these sequences.  ANSI
  7321.                    checking  is  mainly  helpful  for files containing text.
  7322.                    The program which  performs this checking  is CHKANSI.EXE
  7323.                    which is located in your EXTernal DIRectory.  The  format
  7324.                    of the NOANSCHK.LST  file is one  entry per line  of file
  7325.                    extensions  only  (do  not  supply  complete filenames or
  7326.                    wildcards) - only the extension is checked for a match.
  7327.  
  7328.     COMPRESS.LST - Magnum checks your  SESSION DIRectory for  a file by  the
  7329.                    name of  COMPRESS.LST (which  you optionally  create with
  7330.                    your text editor). If it finds it, it incorporates the
  7331.                    instructions within into the BBS. With COMPRESS.LST, you
  7332.                    can support whatever file compression schemes you wish.
  7333.                    Although .ARC and .ZIP formats are built in AND can be
  7334.                    overriden with this file, some of the internal .ARC and
  7335.                    .ZIP routines still remain, as these are used for
  7336.  
  7337.  
  7338.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7339.  
  7340.  
  7341.  
  7342.     Page  6-6                         Back to Display Files & Subdirectories
  7343.                                                        The SESSION DIRECTORY
  7344.  
  7345.  
  7346.                    system-generated files (ie: compressed file or message
  7347.                    listings... for these, you'll still need ARC2.EXE and
  7348.                    PKZIP2.EXE in your EXTERNAL directory. However, you can
  7349.                    support other file compression formats such as .LZH or
  7350.                    .ZOO for example.
  7351.  
  7352.                    To support other file formats, create a file called
  7353.                    COMPRESS.LST in your SESSION DIRectory with your favorite
  7354.                    text editor. The format of this ASCII file is as follows
  7355.                    (via example):
  7356.  
  7357.                      Definitions for various file compressions.
  7358.                      Sample COMPRESS.LST file. Anything not starting with:
  7359.  
  7360.                                      .
  7361.                                      C=
  7362.                                      D=
  7363.                                      L=
  7364.                                      T=
  7365.                                      K=
  7366.  
  7367.                      will be treated as a comment line (ignored).
  7368.  
  7369.                      .ZIP:
  7370.                           C=PKZIP2.EXE -u %s
  7371.                           D=PKUNZIP2.EXE -o %s
  7372.                           L=PKUNZIP2.EXE -v %s
  7373.                           T=PKUNZIP2.EXE -t %s
  7374.                           K=PKZIP2.EXE -zq %s
  7375.                      .ARC:
  7376.                           C=ARC2.EXE u %s
  7377.                           D=ARC2.EXE x %s
  7378.                           L=ARC2.EXE l %s
  7379.                           T=ARC2.EXE t %s
  7380.                      .ZOO:
  7381.                           C=ZOO.EXE a %s
  7382.                           D=ZOO.EXE x %s
  7383.                           L=ZOO.EXE l %s
  7384.                     .LZH:
  7385.                           C=LH.EXE A %s
  7386.                           D=LH.EXE X %s
  7387.                           L=LH.EXE L %s
  7388.                           T=LH.EXE T %s
  7389.  
  7390.                    Note that the first nonspace character must begin with .
  7391.                    (the period character), or C= or D= or L= or T= or K= in
  7392.                    order for it to be a valid statement, otherwise the
  7393.                    entire text line is ignored (treated as a comment line).
  7394.                    The . character defines the file extension for that
  7395.                    particular file compression method. Therefore, .LZH: for
  7396.                    example, defines the external programs necessary to
  7397.                    process files ending with extensions of .LZH (don't
  7398.                    forget to end the extension with the : character).
  7399.  
  7400.  
  7401.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7402.  
  7403.  
  7404.  
  7405.     Back to Display Files & Subdirectories                         Page  6-7
  7406.     The SESSION DIRECTORY
  7407.  
  7408.  
  7409.                    Following .LZH: (for example), are four statements. The
  7410.                    first statement, beginning with the C= keyword, defines
  7411.                    the program name and parameters for COMPRESSING a file.
  7412.                    The %s needed in all definitions represents the file name
  7413.                    of the .LZH file and will be substituted with the .LZH
  7414.                    file name internally when Magnum processes the file.
  7415.                    Similar definitions exist for the D= keyword
  7416.                    (DECOMPRESS), L= (LIST Members),  T= (TEST integrity),
  7417.                    and K= (Add Comment). Note that in the above example,
  7418.                    there is no T= statement for .ZOO file processing. Not
  7419.                    that it doesn't exist, but the ZOO processing program we
  7420.                    tested didn't have this capability. It's ok to leave out
  7421.                    the T= keyword (or any other, but we haven't tested with
  7422.                    any keywords left out other than T). Now then, the
  7423.                    external compression/decompression program(s) must
  7424.                    conform to the following specifications:
  7425.  
  7426.                     - Must write their output to STDOUT when listing members
  7427.                       of a compressed file.
  7428.  
  7429.                     - Must reside in your EXTERNAL DIRectory (do not supply
  7430.                       path names in the COMPRESS.LST file).
  7431.  
  7432.                     - The %s parameter which represents the file Magnum will
  7433.                       be working with, can appear anywhere on the parameter
  7434.                       line to accomodate external programs requiring the
  7435.                       file name to appear before (as opposed to after) any
  7436.                       arguments.
  7437.  
  7438.                     - If the external program supports HPFS long filenames,
  7439.                       then your WORK DIRectories should all reside on an
  7440.                       HPFS drive. Please note that Magnum itself does NOT
  7441.                       support long filenames - this lack of support is
  7442.                       currently necessary to accomodate FAT systems. Support
  7443.                       for long filenames may appear in a future release.
  7444.  
  7445.                     - If the external program supports adding a comment (K=)
  7446.                       to the file, it must be able read this information
  7447.                       from STDIN (Magnum will redirect this information from
  7448.                       ZIPCMT.n, where n is node#).
  7449.  
  7450.                    Note that in our example COMPRESS.LST file above, we
  7451.                    provided definitions for .ARC and .ZIP formats. These
  7452.                    definitions are optional because these formats are
  7453.                    already built in. However, we provided these definitions
  7454.                    to show you how you can override the built-in
  7455.                    definitions for .ARC and .ZIP format. If you leave out
  7456.                    a X= keyword (ie: C=, D=, L=, K=, T=) then Magnum will
  7457.                    use its built-in definition. Note that system-generated
  7458.                    files (compressed file or message listings or other RJE
  7459.                    generated compressed file) will use the built-in
  7460.                    definitions to create an .ARC or .ZIP file regardless of
  7461.                    the definitions found in the COMPRESS.LST file. All other
  7462.  
  7463.  
  7464.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7465.  
  7466.  
  7467.  
  7468.     Page  6-8                         Back to Display Files & Subdirectories
  7469.                                                        The SESSION DIRECTORY
  7470.  
  7471.  
  7472.                    BBS functions will use the definitions in COMPRESS.LST if
  7473.                    it exists.
  7474.  
  7475.                    You may define up to 10 different file compression
  7476.                    formats. In our example above, we've defined 4. We could
  7477.                    have left out .ZIP and .ARC, which still results in
  7478.                    Magnum understanding 4 formats since .ARC and .ZIP are
  7479.                    built in unless overridden in this file.
  7480.  
  7481.                    In the above example, Magnum will recognize that files
  7482.                    ending with .ARC, .ZIP, .LZH and .ZOO are compressed
  7483.                    files. You can [A]ccess these files (from file menu)
  7484.                    without even providing a file extension. If you upload
  7485.                    a file TEST.LZH and Magnum finds a file by the name
  7486.                    of TEST.ZIP (or TEST.ZOO or TEST.ARC), it will disallow
  7487.                    the upload. It will allow TEST.DOC however because .DOC
  7488.                    is not defined as a compressed file format.
  7489.  
  7490.                    Please note that the support for any external file
  7491.                    compression or decompression programs is completely
  7492.                    optional, as is the existence of the COMPRESS.LST file
  7493.                    itself.
  7494.  
  7495.     USER.KEY     - This file is the USER database KEY file for the BBS. This
  7496.                    file will not exist until your first logon.
  7497.  
  7498.     USER.DAT     - This file is the USER database for the BBS. This file
  7499.                    will not exist until your first logon.
  7500.  
  7501.     FILE.DAT     - This file is the FILE database for the BBS. This file
  7502.                    will not exist until files are added or uploaded to the
  7503.                    BBS.
  7504.  
  7505.     MSG.DAT      - This file is the MESSAGE database containing message
  7506.                    header information. This file will not exist until
  7507.                    messages are entered via the BBS.
  7508.  
  7509.     RJE.DAT      - This file is the RJE database containing RJE record
  7510.                    information on who ran what jobs when, status of jobs,
  7511.                    etc. This file will not exist until your first logon.
  7512.  
  7513.     UTILIZ.DAT   - The utilization database (optional) - refer to the
  7514.                    TRACK_UTILIZATION keyword in your STARTUP.x file(s).
  7515.  
  7516.     MILC.SUB     - Magnum now looks for the existence of a new file
  7517.                    (optional) by the name of MILC.SUB in your SESSION
  7518.                    DIRectory. If found, it is used to signal Magnum to
  7519.                    substitute a specific character with another if found
  7520.                    in a @Zx variable.  For example, the MILC.SUB's file
  7521.                    contents might look like the following:
  7522.  
  7523.                            substitute ~ with "
  7524.                            126=34
  7525.  
  7526.  
  7527.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7528.  
  7529.  
  7530.  
  7531.     Back to Display Files & Subdirectories                         Page  6-9
  7532.     The SESSION DIRECTORY
  7533.  
  7534.  
  7535.                            substitute | with ^
  7536.                            124=94
  7537.  
  7538.                    The way it works is a statement such as x=y is
  7539.                    interpreted as "replace all characters with ASCII decimal
  7540.                    value x with ASCII decimal value y". All lines starting
  7541.                    with a non-digit are ignored (treated as a comment). In
  7542.                    the above example, 126 is the ASCII decimal value for the
  7543.                    tilde (~) character. 34 is the ASCII decimal value for
  7544.                    the double quote (") character. The statement 126=34
  7545.                    tells Magnum to replace any occurrence of the tilde (~)
  7546.                    character found in any @Zx string withe the double quote
  7547.                    (") character. Thus, the statement:
  7548.  
  7549.                                  @Z1="this is a ~test~ string";
  7550.  
  7551.                    would be stored (or printed) as:
  7552.  
  7553.                                  this is a "test" string
  7554.  
  7555.                    These automatic, nonreversible substitutions take place
  7556.                    only when a @Zx MILC statement is referenced. Although
  7557.                    this capability is powerful yet obscure, it does provide
  7558.                    an easy way of performing certain things not possible
  7559.                    before. For example, if you wanted to have double quotes
  7560.                    within a string to pass as a command line argument to a
  7561.                    program, this capability provides it. Before this
  7562.                    capability existed there was no way to accomplish this
  7563.                    task.
  7564.  
  7565.     QSECx.BBS    - This file is a quick way of sending a message to a
  7566.     QSECx.SCR      certain security level. When a user's security level
  7567.                    matches x, the file will be displayed to that user after
  7568.                    logon. The file will be sent to matching security levels
  7569.                    only once. The next time they log on, the file will not
  7570.                    be displayed. To send the contents of the file to all
  7571.                    level 100 users for example, simply name the file
  7572.                    QSEC100.BBS. ALL QSECx FILES ARE OPTIONAL!!
  7573.  
  7574.     SECx.BBS     - Identical to QSECx.BBS but will display EVERY TIME a user
  7575.     SECx.SCR       logs on who's security level matches x.
  7576.                    ALL SECx FILES ARE OPTIONAL!!
  7577.  
  7578.     IDx.BBS      - Similar to QSECx.BBS but x must match the user's ID (not
  7579.     IDx.SCR        security level). For example, to send the file to the
  7580.                    user who's ID matches 144, name the file ID144.BBS. Once
  7581.                    the file is displayed to that user, the file will be
  7582.                    deleted.
  7583.                    ALL IDx FILES ARE OPTIONAL!!
  7584.  
  7585.  
  7586.  
  7587.  
  7588.  
  7589.  
  7590.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7591.  
  7592.  
  7593.  
  7594.     Page  6-10                        Back to Display Files & Subdirectories
  7595.                                                       The BULLETIN DIRECTORY
  7596.  
  7597.  
  7598.  
  7599.     Within the BULLETIN DIRECTORY, the following files should be found:
  7600.  
  7601.     BULLETIN.BBS - This is the file which is displayed by MAGNUM when a user
  7602.     BULLETIN.SCR   chooses to view the BULLETIN file. This file usually uses
  7603.                    MILC commands to act as a menu to include other files or
  7604.                    to branch to other areas of this file. Users are notified
  7605.                    if the date and/or time of this file has changed since
  7606.                    they're last logon.
  7607.  
  7608.     NEWSLTR.BBS  - This is the file which is displayed by MAGNUM when a user
  7609.     NEWSLTR.SCR    chooses to view the NEWSLETTER file. As with any other
  7610.                    display file, it may contain MILC commands to form a menu
  7611.  
  7612.     QUESTION.BBS - This is the file which is displayed by MAGNUM when a user
  7613.     QUESTION.SCR   chooses to view the QUESTIONAIRRE file. This file usually
  7614.                    uses MILC commands to act as a menu, perform I/O and log
  7615.                    user's answers to disk. A typical use might be for an
  7616.                    online order system in which users place orders with
  7617.                    their credit cards.
  7618.  
  7619.     QUESNEW.BBS  - If you've configured MAGNUM such that the GET_QUESTION
  7620.     QUESNEW.SCR    parm is Y, then the contents of this file is displayed.
  7621.                    This file will typically have MILC commands which will
  7622.                    perform I/O and log the user's answers to disk. This
  7623.                    file will be presented only once to every user who calls
  7624.                    for the first time.
  7625.  
  7626.  
  7627.  
  7628.  
  7629.  
  7630.  
  7631.  
  7632.  
  7633.  
  7634.  
  7635.  
  7636.  
  7637.  
  7638.  
  7639.  
  7640.  
  7641.  
  7642.  
  7643.  
  7644.  
  7645.  
  7646.  
  7647.  
  7648.  
  7649.  
  7650.  
  7651.  
  7652.  
  7653.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7654.  
  7655.  
  7656.  
  7657.     Back to Display Files & Subdirectories                        Page  6-11
  7658.     The MENU DIRECTORY
  7659.  
  7660.  
  7661.  
  7662.     Within  the  MENU  DIRECTORY,  the  following  files  should  be  found.
  7663.     However, ALL FILES in this directory are OPTIONAL.  IF NOT FOUND, MAGNUM
  7664.     builds it's own menus dynamically and displays that instead.
  7665.  
  7666.     MAINMENU.BBS - Create your own MAIN menu in this file. If the file
  7667.     MAINMENU.SCR   exists, it will override the dynamic menu MAGNUM builds
  7668.                    and displays.
  7669.  
  7670.     FILEMENU.BBS - Create your own FILE menu in this file. If the file
  7671.     FILEMENU.SCR   exists, it will override the dynamic menu MAGNUM builds
  7672.                    and displays.
  7673.  
  7674.     MSGMENU.BBS  - Create your own MESSAGE menu in this file. If the file
  7675.     MSGMENU.SCR    exists, it will override the dynamic menu MAGNUM builds
  7676.                    and displays.
  7677.  
  7678.     SYSMENU.BBS  - Create your own SYSOP menu in this file. If the file
  7679.     SYSMENU.SCR    exists, it will override the dynamic menu MAGNUM builds
  7680.                    and displays.
  7681.  
  7682.     RJEMENU.BBS  - Create your own RJE menu in this file. If the file
  7683.     RJEMENU.SCR    exists, it will override the dynamic menu MAGNUM builds
  7684.                    and displays.
  7685.  
  7686.     NOTE: With the use of imbedded MILC commands, you can effectively create
  7687.           one menu file per section which will look different to every
  7688.           security level. You can even have it appear differently for a
  7689.           particular user!
  7690.  
  7691.  
  7692.  
  7693.  
  7694.  
  7695.  
  7696.  
  7697.  
  7698.  
  7699.  
  7700.  
  7701.  
  7702.  
  7703.  
  7704.  
  7705.  
  7706.  
  7707.  
  7708.  
  7709.  
  7710.  
  7711.  
  7712.  
  7713.  
  7714.  
  7715.  
  7716.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7717.  
  7718.  
  7719.  
  7720.     Page  6-12                        Back to Display Files & Subdirectories
  7721.                                                           The HELP DIRECTORY
  7722.  
  7723.  
  7724.  
  7725.     Within  the  HELP  DIRECTORY,  the  following  files  should  be  found.
  7726.     However, ALL FILES in this directory are OPTIONAL.  IF NOT FOUND, MAGNUM
  7727.     simply sends the user the "Help not available" message.
  7728.  
  7729.     MAINHELP.BBS - This is the file which is displayed when a user chooses
  7730.     MAINHELP.SCR   the HELP option for the MAIN menu.
  7731.  
  7732.     FILEHELP.BBS - This is the file which is displayed when a user chooses
  7733.     FILEHELP.SCR   the HELP option for the FILE menu.
  7734.  
  7735.     MSGHELP.BBS  - This is the file which is displayed when a user chooses
  7736.     MSGHELP.SCR    the HELP option for the MESSAGE menu.
  7737.  
  7738.     SYSHELP.BBS  - This is the file which is displayed when a user chooses
  7739.     SYSHELP.SCR    the HELP option for the SYSOP menu.
  7740.  
  7741.     RJEHELP.BBS  - This is the file which is displayed when a user chooses
  7742.     RJEHELP.SCR    the HELP option for the RJE menu.
  7743.  
  7744.  
  7745.     NOTE: With the use of imbedded MILC commands, you can effectively create
  7746.           one HELP file per section which will look different to every
  7747.           security level. You can even have it appear differently for a
  7748.           particular user!
  7749.  
  7750.  
  7751.  
  7752.  
  7753.  
  7754.  
  7755.  
  7756.  
  7757.  
  7758.  
  7759.  
  7760.  
  7761.  
  7762.  
  7763.  
  7764.  
  7765.  
  7766.  
  7767.  
  7768.  
  7769.  
  7770.  
  7771.  
  7772.  
  7773.  
  7774.  
  7775.  
  7776.  
  7777.  
  7778.  
  7779.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7780.  
  7781.  
  7782.  
  7783.     Back to Display Files & Subdirectories                        Page  6-13
  7784.     The DISPLAY DIRECTORY
  7785.  
  7786.  
  7787.  
  7788.     Within  the  DISPLAY  DIRECTORY,  the  following  files should be found.
  7789.     However, ALL FILES in this directory are OPTIONAL.  IF NOT FOUND, MAGNUM
  7790.     simply sends an error message to the console (if you are snooping on the
  7791.     session)  -  otherwise,  the  remote  USER  is  not  aware  of  anything
  7792.     different.  Any error messages you  see as a "snooping sysop" are  to be
  7793.     taken  as  warnings  only  -  the  remote  user never sees these warning
  7794.     messages.
  7795.  
  7796.     NOTE THAT ALL FILES LISTED BELOW CAN EXIST IN EITHER .BBS or .SCR FORMAT
  7797.     (or both).  THE ONLY EXCEPTIONS TO THIS ARE:
  7798.  
  7799.          PRELOG.BBS,  LOWBAUD.BBS,  CLOSED.BBS, QUOTES.BBS and OPEN.BBS
  7800.  
  7801.     DO NOT CREATE ANY .SCR FILES FOR THE ABOVE 5 FILES!!
  7802.  
  7803.     HELLO1.BBS   - Displayed after the user successfully logs on.
  7804.  
  7805.     HELLO2.BBS   - Displayed after HELLO1.BBS
  7806.  
  7807.     HELLO3.BBS   - Displayed after HELLO2.BBS
  7808.  
  7809.     NEWUSER.BBS  - Displayed after logon IF this is the user's FIRST logon.
  7810.  
  7811.     BIRTHDAY.BBS - If you've configured MAGNUM to ask new users for their
  7812.                    birth dates, MAGNUM compares their birthdate with the
  7813.                    current date. If it matches, the contents of this file
  7814.                    is displayed.
  7815.  
  7816.     GOODBYE.BBS  - Displayed when the user logs off.
  7817.  
  7818.     PRELOG.BBS   - Displays BEFORE the LOGIN: prompt.
  7819.  
  7820.     LOWBAUD.BBS  - Displays if the user's baud rate is LOWER than the lowest
  7821.                    acceptable baud rate you've defined in the STARTUP.x file
  7822.  
  7823.     CLOSED.BBS   - Displays IF you're running a CLOSED BBS and the new
  7824.                    user's name is not found in the USER database.
  7825.  
  7826.     OPEN.BBS     - Displays IF you're running an OPEN BBS and the user's
  7827.                    user's name is not found in the USER database. This is an
  7828.                    ideal place to place present the user with some
  7829.                    information about the BBS and ask them if they wish to
  7830.                    continue to log on as a new user. You can terminate their
  7831.                    session with MILC command @C17 if they do not wish to
  7832.                    continue.
  7833.  
  7834.     QUOTES.BBS   - Displays at logoff. The quote sent is equal to the number
  7835.                    of times the caller has called modulus the number of
  7836.                    quotes in the file. The file should have the folloing
  7837.                    format:
  7838.  
  7839.                        %50
  7840.  
  7841.  
  7842.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7843.  
  7844.  
  7845.  
  7846.     Page  6-14                        Back to Display Files & Subdirectories
  7847.                                                        The DISPLAY DIRECTORY
  7848.  
  7849.  
  7850.                        %1  This is Quote #1
  7851.                        %2  This is Quote #2. Any quote can use
  7852.                            as many lines as you want.
  7853.                        %3  This is Quote #3.
  7854.                        .
  7855.                        .
  7856.                        .
  7857.                        %50 This is Quote #50.
  7858.  
  7859.                    The way this file works is as follows: The very first
  7860.                    line in the file is a %x where x is the number of quotes
  7861.                    in the file. After that, every quote is numbered with %x
  7862.                    where x ranges from 1 to x. There should be NO SPACES
  7863.                    between the % character and the quote# (x). The %
  7864.                    character should appear in column 1. 50 is the limit used
  7865.                    in this example - your actual file can contain as many
  7866.                    quotes as you wish.
  7867.  
  7868.     PREUP.BBS    - Displayed prior to the user performing an upload.
  7869.  
  7870.     POSTUP.BBS   - Displayed after the user performs an upload.
  7871.  
  7872.     PREDOWN.BBS  - Displayed prior to the user performing a download.
  7873.  
  7874.     POSTDOWN.BBS - Displayed after the user performs a download.
  7875.  
  7876.     UDRATIO.BBS  - Displayed when the user's upload/download ratio has been
  7877.                    exceeded.
  7878.  
  7879.     PRELIST.BBS  - Displayed prior to performing a LIST FILEs command.
  7880.  
  7881.  
  7882.  
  7883.  
  7884.  
  7885.  
  7886.  
  7887.  
  7888.  
  7889.  
  7890.  
  7891.  
  7892.  
  7893.  
  7894.  
  7895.  
  7896.  
  7897.  
  7898.  
  7899.  
  7900.  
  7901.  
  7902.  
  7903.  
  7904.  
  7905.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7906.  
  7907.  
  7908.  
  7909.     Back to Display Files & Subdirectories                        Page  6-15
  7910.     The EXTERNAL DIRECTORY
  7911.  
  7912.  
  7913.  
  7914.     The following are the files (programs, text, .cmd files, etc) which are
  7915.     called/displayed by MAGNUM:
  7916.  
  7917.     CMD.EXE      - Called when the sysop wishes to drop to the OS/2 command
  7918.                    interpreter from a remote location.
  7919.                    NOTE: NOT INCLUDED WITH THE BBS PACKAGE. IS PART OF OS/2.
  7920.                          YOU'LL NEED TO HAVE THIS IN YOUR PATH STATEMENT!
  7921.  
  7922.     ARC2.EXE     - Called when the user wishes to create/view a .ARC file.
  7923.                    NOTE: NOT INCLUDED WITH THE BBS PACKAGE BUT AVAILABLE FOR
  7924.                          DOWNLOAD FROM GILMORE SYSTEM'S BBS.
  7925.  
  7926.     PKZIP2.EXE   - Called when the user wishes to create a .ZIP file.
  7927.  
  7928.  
  7929.  
  7930.     PKUNZIP2.EXE - Called when the user wishes to view a .ZIP file.
  7931.  
  7932.  
  7933.  
  7934.     ZIPCMT.x     - A text file (x=node number) which, if exists, gets placed
  7935.                    into any uploaded .ZIP file as a "ZIP file comment".
  7936.                    Useful for advertising your BBS, etc. Requires PKZIP2.EXE
  7937.  
  7938.     CHKANSI.EXE  - Called after every upload, and after every message
  7939.                    entered. Checks if the uploaded file or new message has
  7940.                    any harmful ANSI escape sequences imbedded within which
  7941.                    may redefine your (or another user's) keyboard when
  7942.                    viewed. If harmful escape sequences are found, MAGNUM
  7943.                    automatically locks the user out of the system and logs
  7944.                    them off! Included with the package.
  7945.  
  7946.     CHILDREN.BBS - Menu for external programs (known as 'doors' on DOS
  7947.     CHILDREN.SCR   BBS's). The way this works is that upon exit of
  7948.                    displaying this file, the variable @Z0 should hold the
  7949.                    program name (no path or drive, just program name),
  7950.                    variable @Z1 should hold command line arguments to be
  7951.                    passed to the child (if any), and @N0 should hold either
  7952.                    0 or 1 where 0=child handles local echo, 1=door handles
  7953.                    local echo. Subject to change. See our example
  7954.                    CHILDREN.BBS file (included).
  7955.  
  7956.  
  7957.  
  7958.  
  7959.  
  7960.  
  7961.  
  7962.  
  7963.  
  7964.  
  7965.  
  7966.  
  7967.  
  7968.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  7969.  
  7970.  
  7971.  
  7972.     Page  6-16                        Back to Display Files & Subdirectories
  7973.                                                            The RJE DIRECTORY
  7974.  
  7975.  
  7976.  
  7977.     When  the  [L]ist/Execut  option  of  the  RJE  menu is chosen, the file
  7978.     RJELIST.BBS (or RJELIST.SCR) is displayed - this file is expected to  be
  7979.     found in the RJE DIRECTORY.  Any program started from this file, or  any
  7980.     other display file (with the @E1 command), will be expected to be  found
  7981.     in this subdirectory.
  7982.  
  7983.     Output files created by your RJE programs are usually ARC'd or ZIP'd and
  7984.     placed in the  RJE RESULTS AREA  (one of your  file download areas)  for
  7985.     download (placed there with ADDRJE.EXE).  File naming convention used is
  7986.     Ux@y.ZIP - where  x is the  user's ID number,  and y ranges  from 0 to F
  7987.     (hex) - if there are already 16  files to the user's name, no more  will
  7988.     be allowed.   All files in  this section are  automatically private with
  7989.     the  user's  logon  password  (if  the  user's logon password exceeds 10
  7990.     characters, only  the first  10 characters  are used  as the  password).
  7991.     Files created by  the [M]ake selection  of the [F]iles  menu are set  to
  7992.     expire  the  following  day,  or  will  be  deleted  as soon as the user
  7993.     successfully downloads it. If you'll be writing your own programs to run
  7994.     as RJE jobs, run ADDRJE.EXE without parms for instructions on its use.
  7995.  
  7996.  
  7997.  
  7998.  
  7999.  
  8000.  
  8001.  
  8002.  
  8003.  
  8004.  
  8005.  
  8006.  
  8007.  
  8008.  
  8009.  
  8010.  
  8011.  
  8012.  
  8013.  
  8014.  
  8015.  
  8016.  
  8017.  
  8018.  
  8019.  
  8020.  
  8021.  
  8022.  
  8023.  
  8024.  
  8025.  
  8026.  
  8027.  
  8028.  
  8029.  
  8030.  
  8031.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8032.  
  8033.  
  8034.  
  8035.     Back to Display Files & Subdirectories                        Page  6-17
  8036.     The MESSAGE SUBDIRECTORY
  8037.  
  8038.  
  8039.  
  8040.     Where message  files go.   Any  messages which  are a  description of an
  8041.     available  file  for  download,  will  have  the  same  filename  as the
  8042.     downloadable file.  MSG DIRECTORY is the parent subdirectory, and  there
  8043.     MUST be  26 subdirectory  entries within  this directory,  named A to Z.
  8044.     (IE:  \magnum\msg\a, \magnum\msg\b ...  \magnum\msg\z).
  8045.  
  8046.  
  8047.  
  8048.  
  8049.  
  8050.  
  8051.  
  8052.  
  8053.  
  8054.  
  8055.  
  8056.  
  8057.  
  8058.  
  8059.  
  8060.  
  8061.  
  8062.  
  8063.  
  8064.  
  8065.  
  8066.  
  8067.  
  8068.  
  8069.  
  8070.  
  8071.  
  8072.  
  8073.  
  8074.  
  8075.  
  8076.  
  8077.  
  8078.  
  8079.  
  8080.  
  8081.  
  8082.  
  8083.  
  8084.  
  8085.  
  8086.  
  8087.  
  8088.  
  8089.  
  8090.  
  8091.  
  8092.  
  8093.  
  8094.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8095.  
  8096.  
  8097.  
  8098.     Page  6-18                        Back to Display Files & Subdirectories
  8099.                                                        The WORK SUBDIRECTORY
  8100.  
  8101.  
  8102.  
  8103.     Temporary workspace to hold extracted members of .ARC or .ZIP files  and
  8104.     other temporary workspace needs.
  8105.  
  8106.     IMPORTANT: The WORK directory MUST BE UNIQUE for each node!!!
  8107.  
  8108.  
  8109.  
  8110.  
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  
  8116.  
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  
  8123.  
  8124.  
  8125.  
  8126.  
  8127.  
  8128.  
  8129.  
  8130.  
  8131.  
  8132.  
  8133.  
  8134.  
  8135.  
  8136.  
  8137.  
  8138.  
  8139.  
  8140.  
  8141.  
  8142.  
  8143.  
  8144.  
  8145.  
  8146.  
  8147.  
  8148.  
  8149.  
  8150.  
  8151.  
  8152.  
  8153.  
  8154.  
  8155.  
  8156.  
  8157.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8158.  
  8159.  
  8160.  
  8161.     Back to Display Files & Subdirectories                        Page  6-19
  8162.     The SYSOUT SUBDIRECTORY
  8163.  
  8164.  
  8165.  
  8166.     ACTIVITY.x   - These files (x=1 for node 1, x=2 for node 2, etc) will be
  8167.                    created if they don't exist. They contain a summary of
  8168.                    activity on the board for the node they represent.
  8169.                    These ACTIVITY.x files can grow very large in a short
  8170.                    period of time. Therefore, it's a good idea to
  8171.                    periodically delete these ACTIVITY.x files from time to
  8172.                    time in order to conserve available disk space.
  8173.  
  8174.     SYSCHAT.LOG  - This file will be created the first time you SYSCHAT with
  8175.                    someone (not to be confused with GROUP chat). It will be
  8176.                    appended to with all subsequent SYSCHAT's. You may delete
  8177.                    this file anytime it gets too large. This file holds the
  8178.                    contents of your "chat" sessions.
  8179.  
  8180.     GRPCHAT.LOG  - This file will be created the first time 2 users speak
  8181.                    with each other via the Group Chat option. It will be
  8182.                    appended to with all subsequent Group Chat's. You may
  8183.                    delete this file anytime it gets too large but you must
  8184.                    terminate MBBS first. This file holds the contents of
  8185.                    all Group Chat's.
  8186.  
  8187.     *.R??        - Any questionairres you may have - anytime I/O is used to
  8188.                    write to disk with the @Z or @N commands, the responses
  8189.                    go to the same filename as what they're responding to,
  8190.                    only with an extension of .R?? where ?? is the node
  8191.                    number the user is on when they're responding to the
  8192.                    file. For example, if a user on node 2 is responding to
  8193.                    questions within the file QUESTION.BBS, the results will
  8194.                    be placed in QUESTION.R02.
  8195.  
  8196.  
  8197.  
  8198.  
  8199.  
  8200.  
  8201.  
  8202.  
  8203.  
  8204.  
  8205.  
  8206.  
  8207.  
  8208.  
  8209.  
  8210.  
  8211.  
  8212.  
  8213.  
  8214.  
  8215.  
  8216.  
  8217.  
  8218.  
  8219.  
  8220.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8221.  
  8222.  
  8223.  
  8224.     Page  6-20                        Back to Display Files & Subdirectories
  8225.                                                        The USER SUBDIRECTORY
  8226.  
  8227.  
  8228.  
  8229.     The USER subdirectory holds files specific to your users.   For example,
  8230.     if you allow any of your users access to MILC commands @Zx or @Nx,  they
  8231.     have  the  ability  to  create  messages  which can ask questions of the
  8232.     reader and log their answers to a file.  Those 'answers' get logged to a
  8233.     file in the USER DIRectory under the same name as the message file.
  8234.  
  8235.     User  NotePads  are  also  kept  in  this  subdirectory.  Any user who's
  8236.     created one or  more notes will  have files in  this subdirectory.   The
  8237.     NotePad files have the following naming convention:
  8238.  
  8239.         IDxxxxx.NPT   - NotePad Titles for User ID xxxxx
  8240.         IDxxxxx.Nnn   - NotePad nn for User ID xxxxx (nn = 00 to 99)
  8241.  
  8242.     This is  for your  own information.   The  remote user  is oblivious  to
  8243.     Magnum's directory structure or file naming conventions.
  8244.  
  8245.  
  8246.  
  8247.  
  8248.  
  8249.  
  8250.  
  8251.  
  8252.  
  8253.  
  8254.  
  8255.  
  8256.  
  8257.  
  8258.  
  8259.  
  8260.  
  8261.  
  8262.  
  8263.  
  8264.  
  8265.  
  8266.  
  8267.  
  8268.  
  8269.  
  8270.  
  8271.  
  8272.  
  8273.  
  8274.  
  8275.  
  8276.  
  8277.  
  8278.  
  8279.  
  8280.  
  8281.  
  8282.  
  8283.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8284.  
  8285.  
  8286.  
  8287.     Using Magnum BBS as a USER                                     Page  7-1
  8288.  
  8289.  
  8290.  
  8291.     As a USER, either remote via modem, or local via the console, Magnum BBS
  8292.     software is fairly simple and self explanatory.  All menus offer  online
  8293.     help which you  can display by  choosing the [?]  command.  A  help file
  8294.     will be  displayed which  you've created  (or altered  from the  file we
  8295.     supply).  We have not supplied a help file for the Sysop menu, but  feel
  8296.     free to create  your own.
  8297.  
  8298.     A  few  'not-so-obvious'  usages  of  the  system  are command chaining.
  8299.     Whether  or  not  a  user  is using single-keystroke commands (hotkeys),
  8300.     command chaining  (also known  as command  stacking on  some systems) is
  8301.     available at  ANY prompt.   To  use command  chaining, simply begin your
  8302.     entry with the semicolon (;) character.  For example, if you are in  the
  8303.     Main Menu  and wish  to read  all mail  since the  last logon, you would
  8304.     enter:
  8305.  
  8306.          ;M;R;S
  8307.  
  8308.     Not only does this save time but omits displaying the actual menus  when
  8309.     commands are chained.  Unlike other systems, command chaining MUST START
  8310.     WITH THE SEMICOLON (;) CHARACTER!!
  8311.  
  8312.     Another not-so-commonly-known trick is to  stop the display of any  text
  8313.     file simply by hitting the <Ctrl-X>  key combination).  This way a  user
  8314.     is not forced to read through a file in its entirety if they do not want
  8315.     to.  There is a  command (see MILC) which you  can imbed in the file  to
  8316.     disable the ability to stop its display with <Ctrl-X>.
  8317.  
  8318.     One more shortcut you can use on  the system is the entry of dates  when
  8319.     responding to any date prompt.  For example, regardless of whether  your
  8320.     date setting  is European  or US  date format,  you can  enter a date in
  8321.     either  format  (MM/DD/YYYY  or  DD.MM.YYYY).    Your default dateformat
  8322.     setting is used by Magnum only for display purposes.  Also, you  needn't
  8323.     enter a 2-digit month, or a 2-digit day, or a 4-digit year.  As a matter
  8324.     of fact, the year is optional!   Magnum will assume the following  about
  8325.     dates:   If a  month or  day is  entered as  1-digit, it will internally
  8326.     convert it to 2-digits (by adding a leading 0).  If the year is omitted,
  8327.     the current year is assumed.  If a 1-digit year is entered, the  current
  8328.     decade is assumed.  If a 2-digit year is entered, the current century is
  8329.     assumed.    If  a  3-digit  year  is  entered,  the current millenium is
  8330.     assumed.  If a 4-digit year is entered, that year will be used.  By  way
  8331.     of example, the following  are all valid ways  of entering June 5,  1991
  8332.     (assuming the current year is 1991):
  8333.  
  8334.         06/05/1991      or    05.06.1991
  8335.         06/05/991             05.06.991
  8336.         06/05/91              05.06.91
  8337.         06/05/1               05.06.1
  8338.         06/05                 05.06
  8339.         06/5                  5.06
  8340.         6/05                  05.6
  8341.         6/5                   5.6
  8342.         6/5/1                 5.6.1
  8343.  
  8344.  
  8345.  
  8346.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8347.  
  8348.  
  8349.  
  8350.     Page  7-2                                     Using Magnum BBS as a USER
  8351.  
  8352.  
  8353.     There are  other combinations  to represent  the same  date, however the
  8354.     above should  provide a  sufficient example.   If  the current year were
  8355.     1991, and you  wish to express  June 5, 1990,  you could enter  6/5/0 or
  8356.     5.6.0 or 6/5/90 or 5.6.90.
  8357.  
  8358.     Magnum BBS will automatically inform  users if new mail has  arrived for
  8359.     them during the course of their  online session if the mail is NEW as of
  8360.     this session (checked every 60 seconds).
  8361.  
  8362.     When  in  the  [F]iles  menu,  users  tend  to  look  for a file such as
  8363.     ALLFILES.ARC or  similar name.   What  they're really  looking for  is a
  8364.     compressed file (ARC or ZIP) which contains a list of all the  available
  8365.     downloadable files on  the BBS.   Traditionally, most BBS  systems offer
  8366.     this file, which  is updated once  per day.   With Magnum, however,  the
  8367.     user simply chooses the [M]ake selection - Magnum will "make" an ARC  or
  8368.     ZIP file containing a list of  all available files on the BBS  according
  8369.     to  the  user's  selection  criteria.    The user is guaranteed that the
  8370.     created 'filelist'  will be  accurate as  of the  moment it was created.
  8371.     The user has until midnight that night to download the file - it will be
  8372.     automatically marked for deletion after  midnight and will no longer  be
  8373.     available  for  download.    The  created  filename  is  of  the  format
  8374.     Uxxxxx@y.ARC or  Uxxxxx@y.ZIP depending  on whether  ARC or  ZIP is  the
  8375.     default compression type in the user's profile.  The 'xxxxx' part of the
  8376.     filename is the user's ID number, and 'y' is the number of  downloadable
  8377.     files the user created  today.  'xxxxx' can  be from 1 to  5 digits, and
  8378.     'y' can  be a  hex number  from 0  to F.  In other  words, a filename of
  8379.     U12@0.ARC  is  read  as  "User  /12  filenumber  0". U5@B.ZIP is read as
  8380.     "User /5 filenumber 11".  Files of this type are automatically placed in
  8381.     the  RJE  subdirectory  and  are  password  protected  with  the  user's
  8382.     logon password.  Make sure you allow your users download capability from
  8383.     the RJE directory.
  8384.  
  8385.  
  8386.  
  8387.  
  8388.  
  8389.  
  8390.  
  8391.  
  8392.  
  8393.  
  8394.  
  8395.  
  8396.  
  8397.  
  8398.  
  8399.  
  8400.  
  8401.  
  8402.  
  8403.  
  8404.  
  8405.  
  8406.  
  8407.  
  8408.  
  8409.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8410.  
  8411.  
  8412.  
  8413.     Using Magnum BBS as a USER                                     Page  7-3
  8414.     The MAIN MENU
  8415.  
  8416.  
  8417.  
  8418.     The MAIN MENU, like any other menu in the system is SYSOP  configurable.
  8419.     The SYSOP can choose to have the menu appear however they want,  whether
  8420.     it's  built  dynamically  by  Magnum  (via  your STARTUP definitions) or
  8421.     whether it's an externally displayed  file.  Therefore, we will  use the
  8422.     definitions for the MAIN MENU (and all menu's for that matter)  supplied
  8423.     in our supplied STARTUP files for the purposes of documentation.
  8424.  
  8425.     The  MAIN  MENU,  as  with  any  other  menu  on  the system will appear
  8426.     differently for different users depending on their security level.   For
  8427.     example, you, as  SYSOP, should have  the highest security  level on the
  8428.     system... the [X]  option in the  main menu (Sysop  use only) should  be
  8429.     defined in  your STARTUP  files as  being available  to security  levels
  8430.     matching your  security level  as SYSOP.   Therefore,  users with  lower
  8431.     security levels  will not  even see  the [X]  option in  the main  menu.
  8432.     Likewise, users with  matching or greater  levels than those  defined by
  8433.     the individual menu  selections will see  those selections only  and not
  8434.     those requiring higher security levels.
  8435.  
  8436.     The MAIN MENU currently has 19 different menu selections.  We'll present
  8437.     these menu options one at a time:
  8438.  
  8439.                         MAINMENU_MSG: (menu selection M)
  8440.  
  8441.     This menu selection takes the user into the "Message Section" of the BBS
  8442.     where s/he  will be  presented with  the Message  Menu (see MESSAGE MENU
  8443.     later in this chapter).
  8444.  
  8445.                        MAINMENU_FILE: (menu selection F)
  8446.  
  8447.     This menu selection takes the user  into the "Files Section" of the  BBS
  8448.     where s/he will be presented with  the Files Menu (see FILES MENU  later
  8449.     in this chapter).
  8450.  
  8451.                         MAINMENU_RJE: (menu selection R)
  8452.  
  8453.     This selection takes the user into the "RJE Section" of the BBS where
  8454.     s/he will be presented with the RJE Menu (see RJE MENU later in this
  8455.     chapter).
  8456.  
  8457.                      MAINMENU_BULLETIN: (menu selection B)
  8458.  
  8459.     This  menu  selection  presents  the  user  with  the  BULLETIN.BBS file
  8460.     (expected to be  found in the  BULLETIN directory) which  you've created
  8461.     (or will create) with your text editor.  See MILC commands in an earlier
  8462.     chapter for  how to  create menuing  systems.   Because BULLETIN.BBS  is
  8463.     reported to a  user as being  changed if it's  been modified since  that
  8464.     last time the  user viewed the  BULLETIN.BBS file, it  is important that
  8465.     anytime you change any of the  "included" files brought up by this  file
  8466.     (if any), that you change the date of this file as well - otherwise, the
  8467.     user will  not be  notified of  an update  to bulletins.   What we do at
  8468.     Gilmore Systems, is to  present the user with  a choice of bulletins  to
  8469.     read via the BULLETIN.BBS file, and next to each choice we have the date
  8470.  
  8471.  
  8472.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8473.  
  8474.  
  8475.  
  8476.     Page  7-4                                     Using Magnum BBS as a USER
  8477.                                                                The MAIN MENU
  8478.  
  8479.  
  8480.     of last modification enclosed in parenthesis.
  8481.  
  8482.                      MAINMENU_QUESTION: (menu selection Q)
  8483.  
  8484.     This  menu  selection  presents  the  user  with  the  QUESTION.BBS file
  8485.     (expected to be be found in the BULLETIN directory) which you've created
  8486.     (or will create) with your text editor.  See MILC commands in an earlier
  8487.     chapter for how to create menuing systems.
  8488.  
  8489.                       MAINMENU_COMMENT: (menu selection C)
  8490.  
  8491.     This menu selection allows the user to enter the line editor or the ANSI
  8492.     message editor in order to leave  a private message to the sysop.   Once
  8493.     the user answers the prompt of  which editor they wish to use,  they can
  8494.     then enter a Comment (message) which will automatically be addressed  to
  8495.     the Sysop (ID:  /0) and marked as private (regardless of whether private
  8496.     messages are allowed or  not).  Unlike entering  a message to the  sysop
  8497.     from the MESSAGE section, the COMMENT selection from the main menu  does
  8498.     not prompt  the user  for any  header information  - the  user is  taken
  8499.     directly to the selected  editor for message entry.   If using the  line
  8500.     editor, enter  the word  "/EXIT" (without  quotes) on  a line by itself.
  8501.     The  main  menu's  [E]nvironment  option  also  lets a user change their
  8502.     profile such  that they  can end  message entry  with a  null line  (two
  8503.     successive ENTER's).  Up to 150  text lines are allowed for any  message
  8504.     entry, however, if your system is  running quite low on memory, it  will
  8505.     inform the user of the maximum number  of text lines it is able to  use.
  8506.     By the way,  "/EXIT" can be  shortened to "/EXI"  or "/EX" (all  without
  8507.     quotes of course), and is case independent.
  8508.  
  8509.                       MAINMENU_PAGESYS: (menu selection Y)
  8510.  
  8511.     This menu selection first checks to see whether the current time of  day
  8512.     coincides with the Sysop's  paging hours.  If  it does, AND the  Sysop's
  8513.     BELL parameter  is on  (see Sysop  console commands),  then Magnum  will
  8514.     audibly page  the Sysop  for 30  seconds.   The user  can terminate this
  8515.     paging earlier  by pressing  <Ctrl-X> at  their terminal.   If the Sysop
  8516.     wishes to "chat" with the user doing the paging, the sysop can switch to
  8517.     the user's session and  press <F7>.  If  the Sysop has not  pressed <F7>
  8518.     before the 30  second paging is  over, the user  is presented a  message
  8519.     stating "Sysop  not responding  to page...".   In  the event the current
  8520.     time of day does not coincide with the Sysop's paging hours, the user is
  8521.     notified of the Sysop's paging hours.
  8522.  
  8523.                         MAINMENU_WHO: (menu selection W)
  8524.  
  8525.     This menu selection will present the user with a list of users (by  ID#)
  8526.     of all who  are on the  system, regardless of  which computer (in  a LAN
  8527.     environment) they're logged on from.
  8528.  
  8529.                        MAINMENU_CHAT: (menu selection S)
  8530.  
  8531.     This menu  selection allows  the user  to enter  GROUP CHAT  mode.  Many
  8532.     Sysops disable  this feature  (assign a  security level  higher than any
  8533.  
  8534.  
  8535.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8536.  
  8537.  
  8538.  
  8539.     Using Magnum BBS as a USER                                     Page  7-5
  8540.     The MAIN MENU
  8541.  
  8542.  
  8543.     user to this function) because of abuse potential (fowl language,  etc),
  8544.     but many Sysops also enjoy having the feature enabled.  As a Sysop, this
  8545.     is your prerogative.  When a user chooses this menu selection, they will
  8546.     be placed in GROUP CHAT mode and can page others on the system and  send
  8547.     them immediate one-line private messages.   If two or more  people enter
  8548.     GROUP CHAT mode, they can converse with each other simply by typing back
  8549.     and forth.  While a user is typing, Magnum is collecting what they  type
  8550.     - when they reach the end  of a text line, automatic wordwrap  will work
  8551.     the same was  it does as  if they were  typing a message  in the message
  8552.     section.  Each time automatic  wordwrap happens, the line that  the user
  8553.     just finished typing (prior to  automatic wordwrap) will be sent  to all
  8554.     nodes.   This process  repeats until  the user  presses their ENTER key.
  8555.     The ENTER key merely  sends the current line.   The user can  also enter
  8556.     commands while in GROUP CHAT mode.  A command starts with the / (forward
  8557.     slash) character in column one.  The following commands are supported:
  8558.  
  8559.                        /HELP - presents the user with this list
  8560.                        /EXIT - End chat. Return to BBS.
  8561.        /MSG x "message text" - Send private msg to node x.
  8562.                      /NODE x - Page user on Node x.
  8563.                      /PAGEON - Allows you to be paged by others.
  8564.                     /PAGEOFF - Turns your pager off.
  8565.                        /TIME - Shows current time and time remaining.
  8566.                         /WHO - Shows who's on system and what they're doing
  8567.                                (highest node # is *always* for local sysop).
  8568.                                This command is limited to showing only those
  8569.                                logged onto the same physical machine (unlike
  8570.                                the [W]ho command from the main menu).
  8571.  
  8572.     As  with  all  commands  on  a  Magnum  system,  case  is  unimportant -
  8573.     uppercase, lowercase,  or any  combination of  each are  all the same to
  8574.     Magnum.  As is the case for ending Message entry, ending GROUP CHAT  can
  8575.     be accomplished  by entering  one of  /EXIT, /EXI  or /EX  on a  line by
  8576.     itself.
  8577.  
  8578.                       MAINMENU_INITIAL: (menu selection I)
  8579.  
  8580.     Selection of  this menu  item redisplays  the initial  welcome screen by
  8581.     displaying  the  files  HELLO1.BBS  (or  HELLO1.SCR) thru HELLO3.BBS (or
  8582.     HELLO3.SCR).   If you  have colorful  ANSI graphics  in these screens or
  8583.     some special announcements, some users may want to have another look  at
  8584.     it and this menu selection enables them to do so without them having  to
  8585.     call back just to see those screens again.
  8586.  
  8587.                        MAINMENU_USERS: (menu selection U)
  8588.  
  8589.     This menu selection provides the user with a means of listing the  users
  8590.     in your  USER database.   When  a user  chooses this  menu selection,  a
  8591.     prompt  will  be  accompanied  by  an  explanation of the various ways a
  8592.     search  can  be  performed.    For  example,  if  the  user enters the *
  8593.     character in response to the prompt, ALL users in the USER database will
  8594.     be displayed including the dates of  their last call to the system.   If
  8595.     the user enters one or more characters of a user's last name, a list  of
  8596.  
  8597.  
  8598.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8599.  
  8600.  
  8601.  
  8602.     Page  7-6                                     Using Magnum BBS as a USER
  8603.                                                                The MAIN MENU
  8604.  
  8605.  
  8606.     all users who's first  one or more letters  of their last name  matching
  8607.     the entry  will be  displayed.   If a  user wanted  to search by company
  8608.     name, they'd start  with the \  character - for  example, to search  for
  8609.     those from IBM,  they'd enter \IBM  - this would  result in matches  for
  8610.     IBM, IBM Corp, etc.  Note that the search will match the letters entered
  8611.     if it  finds it  ANYWHERE within  a company  name.   Lastly, a  user can
  8612.     cross-reference other  users according  to user  interests.   If a  user
  8613.     wanted to search for others who's interests were OS/2 and/or MUSIC, they
  8614.     would enter ?OS/2 MUSIC in response to the search criteria.  This  would
  8615.     result in a match for all users with an interest in OS/2 or MUSIC.
  8616.  
  8617.     NOTE: If the GEO_PRIVACY parm in your STARTUP.x file(s)  is  set to 'Y',
  8618.           then geographic information about any users will be omitted.
  8619.  
  8620.                        MAINMENU_PARMS: (menu selection E)
  8621.  
  8622.     This menu  selection allows  a user  to change  the parameters  in their
  8623.     profile.  Currently, 22 changeable parameters exist.  A typical  display
  8624.     may look something like the following:
  8625.  
  8626.        1) Default System Compression Type: ZIP
  8627.        2) End Message Entry with null line (line editor only): NO
  8628.        3) Your "page" switch is: ON
  8629.        4) Company: XYZ Corporation
  8630.        5) Street2: 123 Anystreet
  8631.        6) City: Anytown
  8632.        7) State or Province: CA
  8633.        8) Zip: 90067
  8634.        9) Country: USA
  8635.       10) Password (non shown for security purposes): ******
  8636.       11) BirthDate: 06/01/1955
  8637.       12) Phone1: 213-555-1234
  8638.       13) Phone2: 213-555-4321
  8639.       14) Computer: IBM PS/2 model 80
  8640.       15) Default File Xfer Protocol: None
  8641.       16) ANSI color: yes
  8642.       17) Display "More" prompt: yes
  8643.       18) Erase "More" prompt: yes
  8644.       19) Use Single Keystroke Commands (no C/R required): yes
  8645.       20) Your areas of personal interest:
  8646.       : OS/2 PM COMMUNICATIONS
  8647.       21) Lines per screen: 23
  8648.       22) Date Format (US, Europe): U
  8649.      Enter # to change (1-22), 0=display static info, N=Next page, Q=quit =>
  8650.  
  8651.     A user can change any of  the above parameters by entering it's  number.
  8652.     For example, to change ANSI color  from yes to no, the user  would enter
  8653.     16.  When prompted for ANSI color, the user would supply N (no).  If the
  8654.     user wanted  to see  their permanent  info, they  could enter  0 at this
  8655.     point amd a display similar to the following would appear:
  8656.  
  8657.       User ID: "/10"
  8658.       Security Level: 20
  8659.  
  8660.  
  8661.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8662.  
  8663.  
  8664.  
  8665.     Using Magnum BBS as a USER                                     Page  7-7
  8666.     The MAIN MENU
  8667.  
  8668.  
  8669.       First called on (mm/dd/yyyy): 12/27/1989
  8670.       Last  called on (mm/dd/yyyy): 01/07/1990
  8671.       Last new files search (mm/dd/yyyy): 01/01/1980
  8672.       File xfer CPS rate: 240
  8673.       Download limit per week: 700 files or 70000 K-bytes
  8674.       Conferences available to you: ABCEFGH
  8675.       Number of times you called: 12
  8676.       Minutes of connect time remaining for the week: 105 minutes
  8677.  
  8678.     Note that if a user chooses European date formats, all dates will be  in
  8679.     the format DD.MM.YYYY and all prompts requiring a date will also  expect
  8680.     the input to  be in this  format.  US  date formats are  in the form  of
  8681.     MM/DD/YYYY.
  8682.  
  8683.     If  the  user  chooses  N  (for  NEXT  page),  a  display similar to the
  8684.     following will display:
  8685.  
  8686.       23) Nulls to send after CR: 0
  8687.       24) "List Files" preference: None
  8688.      Enter # to change (23- ), 0=display static info, P=prev page, Q=quit =>
  8689.  
  8690.                        MAINMENU_STATS: (menu selection V)
  8691.  
  8692.     This menu selection displays system statistics.  A typical display might
  8693.     look like the following:
  8694.  
  8695.       MAGNUM BBS (r) (C)Copyright 1989 Gilmore Systems: Serial # 1989070000
  8696.       Parent (System) Serial#: 1989070000
  8697.       Magnum Version 5.00C4
  8698.       OS/2 Version: 1.30
  8699.       BBS Name: "Gilmore Systems Home of MAGNUM OS/2 BBS"
  8700.       BBS Started: July 14, 1989
  8701.       Total calls this node (node 1): 11241
  8702.       Sysop: Chuck B Gilmore
  8703.       Sysop Paging Hours: 00:00 to 23:59
  8704.       BBS settings: Parity=N, Databits=8, Stopbits=1
  8705.       Modem: USRobotics Dual Std
  8706.       DTE Initial: 19200 (locked)
  8707.       User Records: 2250
  8708.       Message Records: 2015
  8709.       File Records: 1022
  8710.       RJE Records: 115
  8711.       Last system restart: 10/17/1990 16:27:07.06
  8712.  
  8713.     As you  can see,  the list  describes the  Sysop's modem  and DTE  rate,
  8714.     number of records in the databases, number of callers for the particular
  8715.     node, paging hours, etc.   This enables users  to get a summary  of your
  8716.     BBS at a glance.
  8717.  
  8718.                        MAINMENU_CHILD: (menu selection D)
  8719.  
  8720.     This menu  option displays  the file  you created  (or will create) with
  8721.     your text editor by the name  of CHILDREN.BBS - the file is  expected to
  8722.  
  8723.  
  8724.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8725.  
  8726.  
  8727.  
  8728.     Page  7-8                                     Using Magnum BBS as a USER
  8729.                                                                The MAIN MENU
  8730.  
  8731.  
  8732.     be found  in your  EXTERNAL directory.   See  MILC commands for creating
  8733.     menuing systems.  See CHILDREN.BBS in Chapter 2 for a description of how
  8734.     to communicate to Magnum which program to run and how it is to be run.
  8735.  
  8736.                        MAINMENU_NEWS: (menu selection N)
  8737.  
  8738.     The description of this menu  selection is identical to the  description
  8739.     given  for  MAINMENU_BULLETIN  except  that  the  filename which will be
  8740.     displayed  is  NEWSLTR.BBS  (expected  to  be  found  in  the   BULLETIN
  8741.     directory).
  8742.  
  8743.                       MAINMENU_GOODBYE: (menu selection G)
  8744.  
  8745.     This menu selection prompts the user  as to whether they really want  to
  8746.     end their session or not.  If Yes, they are prompted as to whether  they
  8747.     wish to leave  a Comment to  the Sysop prior  to disconnecting (See  the
  8748.     VERIFY_GOODBYE option in the STARTUP file).
  8749.  
  8750.                       MAINMENU_EXPERT: (menu selection T)
  8751.  
  8752.     This menu  selection is  actually a  toggle switch.   It simply reverses
  8753.     expert mode.   In other words,  if the user  has full (complete)  menus,
  8754.     choosing this selection will put the user in Expert mode (no menus, just
  8755.     a 1-line prompt showing valid menu characters).  If the user is  already
  8756.     in Expert mode, choosing this menu selection will put the user back into
  8757.     full-menu mode.
  8758.  
  8759.                        MAINMENU_HELP: (menu selection ?)
  8760.  
  8761.     This menu selection will display the MAINHELP.BBS (expected to be  found
  8762.     in the HELP  directory) if it  exists.  If  this file does  not exist, a
  8763.     "help not  available" message  will be  sent to  the user.   If the file
  8764.     exists, the contents will be displayed to the user.
  8765.  
  8766.                        MAINMENU_SYSOP: (menu selection X)
  8767.  
  8768.     This menu selection is usually set to the highest security level so that
  8769.     it is  only visible  and selectable  by the  Sysop.   Choosing this menu
  8770.     selection allows the user to enter the Sysop Menu.  See SYSOP MENU later
  8771.     in this chapter for more information.
  8772.  
  8773.                        MAINMENU_OPT1: (menu selection 1)
  8774.                        MAINMENU_OPT2: (menu selection 2)
  8775.  
  8776.     These menu selections  are normally turned  off by setting  the security
  8777.     level to that of  one higher than any  of your users unless  you plan on
  8778.     using them.  When selected, Magnum will display the file MAINOPT1.BBS or
  8779.     MAINOPT2.BBS from your DISPLAY DIRectory if it exists.  These files  are
  8780.     created by you in order to supply 'hooks' to external programs in  areas
  8781.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  8782.     these files.
  8783.  
  8784.  
  8785.  
  8786.  
  8787.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8788.  
  8789.  
  8790.  
  8791.     Using Magnum BBS as a USER                                     Page  7-9
  8792.     The MESSAGE MENU
  8793.  
  8794.  
  8795.  
  8796.     The Message Menu currently has 10 selections available:
  8797.  
  8798.                         MSGMENU_QUIT: (menu selection Q)
  8799.  
  8800.     This menu selection quits the  Message section, returning the user  back
  8801.     to the Main menu (see MAIN MENU earlier in this chapter).
  8802.  
  8803.                         MSGMENU_UPDT: (menu selection C)
  8804.  
  8805.     This menu selection allows the  user to choose which message  areas they
  8806.     want to  work on.   Note  that Magnum  will only  allow users  to choose
  8807.     message areas they are authorized  to use.  By choosing  this selection,
  8808.     users can  limit the  areas such  that only  areas coinciding with their
  8809.     interests are applied.
  8810.  
  8811.                         MSGMENU_READ: (menu selection R)
  8812.  
  8813.     This menu selection enters the  "Read Messages Submenu", where the  user
  8814.     specifies how and what they wish  to read.  The "Read Messages  Submenu"
  8815.     looks like the following:
  8816.  
  8817.       B = Backwards Read (newest first)
  8818.       D = Date to start from
  8819.       M = Match Text
  8820.       R = by Reference #
  8821.       S = Since Last Read
  8822.       U = To/From User (or to/from you)
  8823.       V = View MY unread mail
  8824.       Q = Quit
  8825.  
  8826.     When choosing  most of  the options,  you'll see  a "Scanning"  message.
  8827.     This message is followed by a dot (.) for every 100 messages scanned.
  8828.  
  8829.     Note that choosing suboptions D or S will update the user's "last  read"
  8830.     message references numbers in their user profile.  All other  selections
  8831.     will have no effect  on their "last read".   The rest of  the submenu is
  8832.     self explanatory.
  8833.  
  8834.     At  the  end  of  reading  any  message  (other  than  a Receipt message
  8835.     generated by Magnum), an  internal message disposition submenu  is built
  8836.     dynamically and  presented to  the user.   This  disposition submenu can
  8837.     have any combination of the following:
  8838.  
  8839.       [A]gain         (re-read message)
  8840.       [B]ackThread    (Appears when this is a response to a previous
  8841.                        message. Choosing this option will find and display
  8842.                        the previous message. You must choose the
  8843.                        [N]oMoreThread option to get out of BackThread mode).
  8844.       [C]ontinuous    (perform continuous (nonstop) reading of messages. No
  8845.                        message disposition submenu appears after messages.
  8846.                        Continuous reading is for those who wish to capture
  8847.                        all messages to a file. Continuous reading will be
  8848.  
  8849.  
  8850.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8851.  
  8852.  
  8853.  
  8854.     Page  7-10                                    Using Magnum BBS as a USER
  8855.                                                             The MESSAGE MENU
  8856.  
  8857.  
  8858.                        stopped if the user presses their <Ctrl-X> key
  8859.                        combination).
  8860.       [E]dit          (Appears if this message if from you, and it has not
  8861.                        been read by the addressee yet. If the message is
  8862.                        public, this option only appears if the message has
  8863.                        not been read by anyone else. Choosing this option
  8864.                        puts the message back into Magnum's line editor and
  8865.                        allows you to edit the message).
  8866.       [F]orward       (Appears if this message is to you. If you'd like
  8867.                        someone else to receive a copy of this message,
  8868.                        choosing this option will prompt you for that user's
  8869.                        ID).
  8870.       [K]ill          (delete message - appears only if message is to/from
  8871.                        you, and Sysop allows users to delete messages).
  8872.       [N]ext          (read next message)
  8873.       [O]rigin        (Appears when this is a response to a previous
  8874.                        message. Choosing this option will find the Origin,
  8875.                        or original message that started this thread).
  8876.       [P]rivate       (Appears if this message is a public message to/from
  8877.                        you. Choosing this option changes the message from
  8878.                        public to private).
  8879.       [P]ublic        (Appears if this message is a private message to/from
  8880.                        you. Choosing this option changes the message from
  8881.                        private to public).
  8882.       [Q]uit          (Quits the "Read Messages Submenu" and returns the
  8883.                        user back to the "Message Menu").
  8884.       [R]eply         (enter a reply to this message)
  8885.       [T]hread        (Appears when there is a response to this message.
  8886.                        Choosing this option will find and display the
  8887.                        response. You must choose the [N]oMoreThread option
  8888.                        to get out of Thread mode).
  8889.       [V]iew          (Appears only if the user viewing this message is the
  8890.                        creator of the message. If this user is allowed
  8891.                        access to MILC commands -in particular, @Zx and @Nx-
  8892.                        where answers can be logged to a file, this option
  8893.                        will show the user the answers to those questions).
  8894.       [+/-]           (Pressing the '-' key causes Magnum to read messages
  8895.                        in reverse chronological order. Pressing the '+' key
  8896.                        causes Magnum to read messages in chronological
  8897.                        order. This option will not appear when reading
  8898.                        'S'ince, or from 'D'ate options in the "read
  8899.                        messages" submenu).
  8900.  
  8901.     Normally,  the  default  choice  will  be  [N]ext.  Sometimes it will be
  8902.     [T]hread depending on whether you're reading sequentially or following a
  8903.     thread.    In  either  case,  the  default  choice  will  be  denoted by
  8904.     parenthesis instead of brackets - for example (N)ext instead of  [N]ext.
  8905.     When a default choice is  indicated on the message disposition  submenu,
  8906.     the user need only press their ENTER key to accept the default.
  8907.     NOTE: When [T]hread was previously chosen, and (T)hread is the default,
  8908.           Magnum will stay in this state until [N]oMoreThread is chosen!
  8909.  
  8910.     Note that 'H' is  an option available only  if logged on locally  (Sysop
  8911.  
  8912.  
  8913.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8914.  
  8915.  
  8916.  
  8917.     Using Magnum BBS as a USER                                    Page  7-11
  8918.     The MESSAGE MENU
  8919.  
  8920.  
  8921.     console).  It does not show up as an option.  The 'H' option, if chosen,
  8922.     will provide  a HARDCOPY  of the  message and  will prompt  you for  the
  8923.     filename or device name of where to print the hardcopy.  When performing
  8924.     a  hardcopy,  note  that  any  embedded  MILC commands are printed as is
  8925.     (unprocessed).
  8926.  
  8927.                         MSGMENU_SCAN: (menu selection S)
  8928.  
  8929.     In  order  to  choose  this  option,  a  user must have chosen a default
  8930.     conference,  or  a  group  of  default conferences with the MSGMENU_UPDT
  8931.     (menu selection C) option.  By choosing this option, only the headers of
  8932.     the messages, but not the actual messages themselves, will be displayed.
  8933.  
  8934.                        MSGMENU_ENTER: (menu selection E)
  8935.  
  8936.     This  menu  selection  tells  Magnum  that  the  user  wishes to enter a
  8937.     message.    Magnum  will  respond  to  this  selection  with a series of
  8938.     prompts:
  8939.  
  8940.       Which Conference (? for list) =>
  8941.       Who is this message to? (/ID#, ALL, SYSOP, ?=UserList, blank quits) =>
  8942.             if the above is to /ID# or SYSOP, it will display:
  8943.               To "JOHN S DOE" (ENTER=Y) (Y/N) =>
  8944.             as an example.
  8945.             if the above is to /ID# or SYSOP, and private messages are
  8946.             allowed on your system, the following will display:
  8947.               Is this a Private Messages (ENTER=N) (Y=yes, N=no)(Y/N)=>
  8948.       Subject =>
  8949.       Expiration date (MM/DD/YYYY) or blank for None =>
  8950.       Do you want a receipt for this message (ENTER=N) (Y/N) =>
  8951.       Editor Type: A)nsi, L)ine =>
  8952.  
  8953.     After the prompts have been answered,  the user will be in the  selected
  8954.     editor (line or ANSI) for message  entry.  The user may now  enter their
  8955.     message (or perform an  ASCII upload such that  no text line exceeds  72
  8956.     characters).  As the user  types their message, automatic wordwrap  will
  8957.     take place at the end of each  text line if necessary.
  8958.  
  8959.           * * * THE FOLLOWING TEXT IS FOR THE ANSI-EDITOR ONLY: * * *
  8960.                 ----------------------------------------------
  8961.  
  8962.     The ANSI editor is self explanatory - all commands are at the top of the
  8963.     user's screen during message entry on lines 1-9. The user can enter up
  8964.     to 150 lines of message text. The text entry "window" is on lines 10-22
  8965.     meaning the most current 13 lines of text are visible at any given time.
  8966.  
  8967.     A copy of the ANSI-EDITOR message entry screen is as follows:
  8968.  
  8969.  
  8970.  
  8971.  
  8972.  
  8973.  
  8974.  
  8975.  
  8976.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  8977.  
  8978.  
  8979.  
  8980.     Page  7-12                                    Using Magnum BBS as a USER
  8981.                                                             The MESSAGE MENU
  8982.  
  8983.  
  8984.      * * ANSI SCREEN CONTROLS IN EFFECT * *     | Ctrl-Key Combinations:
  8985.              /\                   //\\          | K=End (save) | T=Type Msg
  8986.            Ctrl-W                Ctrl-R         | Y=Delete Line| X=Play Msg
  8987.     < Ctrl-A    Ctrl-D > << Ctrl-Q    Ctrl-E >> | G=Delete Char| B=Ins Char
  8988.            Ctrl-Z                Ctrl-F         | L=Abort Msg  | O=Search
  8989.              \/                   \\//          | V=Insert Line| U=Srch/Repl
  8990.     Hit <ESC><ESC> for options.    Max 150 lines| I=TAB        | N=Goto Lin#
  8991.     Lines 1-13
  8992.     ------------------------------------------------------------------------
  8993.     _
  8994.  
  8995.  
  8996.  
  8997.  
  8998.  
  8999.  
  9000.  
  9001.  
  9002.  
  9003.  
  9004.  
  9005.  
  9006.     ------------------------------------------------------------------------
  9007.  
  9008.     The above sample entry screen is self-explanatory.  However, a couple of
  9009.     clarifications are warranted.   Firstly, the <ESC><ESC> option  (meaning
  9010.     to press your <ESC>  key twice in succession,  will present you with  an
  9011.     options menu.   This  options menu  will allow  you to  view the message
  9012.     header Magnum will be using in your message.  If you're responding to  a
  9013.     message, you'll be allowed to re-read the message you're responding  to,
  9014.     and  "quote"  text  lines  from  that  message  to  be brought into your
  9015.     message.  Automatic wordwrap and page (screen) scroll is in effect  when
  9016.     appropriate.  Depending  on whether you're  creating a new  message from
  9017.     scratch or responding to another message, other options which may appear
  9018.     in  the  options  menu  are  'RePlay Original Message', 'ReRead Original
  9019.     Message with  Marking Facilities',  and 'NotePad  Facilities'.   See the
  9020.     chapter entitled "NotePad  Facility" for more  information on using  the
  9021.     NotePad in conjunction with messages.
  9022.  
  9023.     IF YOU'RE LOGGED ON LOCALLY: You can use your Ins, Del, PgUp, PgDn,
  9024.     Home, End and arrow/cursor keys in addition to the <Ctrl-key>
  9025.     combinations defined on top of the message entry screen.
  9026.  
  9027.            * * * THE FOLLOWING TEXT IS FOR THE LINE-EDITOR ONLY: * * *
  9028.                  ----------------------------------------------
  9029.  
  9030.     If using the line editor, message entry is exited by entering one of the
  9031.     following (case independent) on a line by itself starting in column 1:
  9032.  
  9033.           /EXIT
  9034.           /EXI
  9035.           /EX
  9036.  
  9037.  
  9038.  
  9039.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9040.  
  9041.  
  9042.  
  9043.     Using Magnum BBS as a USER                                    Page  7-13
  9044.     The MESSAGE MENU
  9045.  
  9046.  
  9047.     Note that a user could also exit message entry by entering 2 consecutive
  9048.     CR's (press ENTER twice in a row, causing a NUL line) if they went  into
  9049.     their [E]nvironment (from Main Menu) and changed #2 to YES.  Once a user
  9050.     has exited message entry, another submenu will appear as follows:
  9051.  
  9052.        Edit Commands: [S]ave, [T]ype, [D]elete, [I]nsert, [C]ontinue,
  9053.                       [A]bort, [E]dit line, [R]eplace line, [G]o
  9054.  
  9055.     The [S]ave option saves the  message and prompts for CC  (Carbon Copies)
  9056.     if the message is public and to an individual user.
  9057.  
  9058.     The [T]ype option  simply redisplays what's  been entered so  far to the
  9059.     user's screen.
  9060.  
  9061.     The [D]elete  option allows  the user  to delete  a line  or a  block of
  9062.     lines.
  9063.  
  9064.     The [I]nsert option  allows the user  to insert a  new line inbetween  2
  9065.     existing lines.
  9066.  
  9067.     The [C]ontinue option  places the user  back in message  entry mode from
  9068.     the point they left off at (last or highest line# they've entered).
  9069.  
  9070.     The [A]bort option aborts message entry altogether but first prompts the
  9071.     user as to whether an abort is their real intention or not.
  9072.  
  9073.     The  [E]dit  line  option  allows  a  user to change any character(s) or
  9074.     word(s) in a line to any other character(s) or word(s) in a line.
  9075.  
  9076.     The [R]eplace line  option allows the  user to replace  an existing line
  9077.     with new text.
  9078.  
  9079.     The [G]o option allows a user to view their message exactly the way  any
  9080.     recipient (reader) of the message would see it - including processing of
  9081.     MILC commands.
  9082.  
  9083.     NOTE: When the [S]ave option is chosen, Magnum runs CHKANSI.EXE (in your
  9084.           EXTERNAL directory) to check the message for harmful ANSI escape
  9085.           sequences. If an ANSI escape sequence is found which can redefine
  9086.           a key on the keyboard (it can do this when someone else remotely
  9087.           reads the message on their keyboard), then Magnum will
  9088.           automatically delete the message, lock the user out of the system,
  9089.           and hang up. This is a built-in security precaution which can be
  9090.           removed by simply deleting (or renaming) the CHKANSI.EXE program
  9091.           in the EXTERNAL directory. In the event of a user lockout, Magnum
  9092.           will create a message to the Sysop about the lockout.
  9093.  
  9094.                         MSGMENU_KILL: (menu selection D)
  9095.  
  9096.     This option prompts the user for the Reference # (11 characters) of  the
  9097.     message s/he wishes to delete.  Magnum then checks to make sure that the
  9098.     message matching this reference # is either to or from the user - if  it
  9099.     is, Magnum deletes the message, otherwise the deletion is disallowed.
  9100.  
  9101.  
  9102.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9103.  
  9104.  
  9105.  
  9106.     Page  7-14                                    Using Magnum BBS as a USER
  9107.                                                             The MESSAGE MENU
  9108.  
  9109.  
  9110.  
  9111.                         MSGMENU_SRCH: (menu selection T)
  9112.  
  9113.     This option prompts the user for a string of text.  Magnum then searches
  9114.     the message database (only areas  authorized to the user) for  this text
  9115.     string within  the SUBJECT  descriptions of  the messages.   Magnum then
  9116.     displays the headers (only) of the messages matching the search.
  9117.  
  9118.                        MSGMENU_CHECK: (menu selection P)
  9119.  
  9120.     This option is  identical to the  "Check Your Mail?   (Y/N) =>  " prompt
  9121.     which appears  after a  user logs  on (just  before displaying  the main
  9122.     menu).  It simply checks the message database for any mail addressed  to
  9123.     you which you have not yet read.
  9124.  
  9125.                       MSGMENU_GOODBYE: (menu selection G)
  9126.  
  9127.     This menu selection prompts the user  as to whether they really want  to
  9128.     end their session or not.  If Yes, they are prompted as to whether  they
  9129.     wish to leave  a Comment to  the Sysop prior  to disconnecting (see  the
  9130.     VERIFY_GOODBYE option in the STARTUP file).
  9131.  
  9132.                         MSGMENU_HELP: (menu selection ?)
  9133.  
  9134.     This menu selection will display  the MSGHELP.BBS (expected to be  found
  9135.     in the HELP  directory) if it  exists.  If  this file does  not exist, a
  9136.     "help not  available" message  will be  sent to  the user.   If the file
  9137.     exists, the contents will be displayed to the user.
  9138.  
  9139.                         MSGMENU_OPT1: (menu selection 1)
  9140.                         MSGMENU_OPT2: (menu selection 2)
  9141.  
  9142.     These menu selections  are normally turned  off by setting  the security
  9143.     level to that of  one higher than any  of your users unless  you plan on
  9144.     using them.  When selected, Magnum will display the file MSGOPT1.BBS  or
  9145.     MSGOPT2.BBS from your DISPLAY DIRectory  if it exists.  These  files are
  9146.     created by you in order to supply 'hooks' to external programs in  areas
  9147.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  9148.     these files.
  9149.  
  9150.                         MSGMENU_BASE: (menu selection M)
  9151.  
  9152.     This menu selection  is for those  who've purchased [and  installed] our
  9153.     'Extended MessageBase'  module.   If you're  not using  this module, you
  9154.     should raise the security  level of this menu  option such that it  does
  9155.     not appear on any user's screen.
  9156.  
  9157.  
  9158.  
  9159.  
  9160.  
  9161.  
  9162.  
  9163.  
  9164.  
  9165.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9166.  
  9167.  
  9168.  
  9169.     Using Magnum BBS as a USER                                    Page  7-15
  9170.     The FILES MENU
  9171.  
  9172.  
  9173.  
  9174.     The Files Section of Magnum provides some powerful features.  Before  we
  9175.     get into the menu definitions,  let's start with a brief  explanation of
  9176.     some of the unique built-in features.  Firstly, Magnum assigns a  number
  9177.     (#nnnnn) to  every file  in your  file database(s).   This  #nnnn is the
  9178.     record number  of any  particular file  in the  file listings.   At  any
  9179.     prompt  within  the  file  section  which  requests  a filename, you may
  9180.     provide the  #nnnnn instead  (start with  the #  character).  The #nnnnn
  9181.     number method is  *extremely* fast!   Note however, that  #nnnnn numbers
  9182.     will change after any time you  perform a pack of the file  database(s).
  9183.     Magnum's file section also has the ability to 'mark' files for download.
  9184.     When the remote user performs a  file listing (and their MORE prompt  is
  9185.     set to come on after every  screenfull), part of the MORE prompt  is the
  9186.     [U]tils selection.   By choosing [U]tils,  the user can  'mark' the file
  9187.     for download, 'view'  the file and  members within if  it's a compressed
  9188.     file, 'read' the file if an ASCII text file, obtain 'info' on the  file,
  9189.     etc, without losing their place  in the file listings.   When 'D'ownload
  9190.     is finally chosen from the  files menu, marked files will  automatically
  9191.     be placed on the user's download list (s/he needn't re-enter them),  but
  9192.     will be given a chance to view and/or modify the marked files list prior
  9193.     to  actually  downloading.    Note  that  system-created files such as a
  9194.     compressed  file  listing  will  automatically  be  placed on the user's
  9195.     download list as a 'marked' file.  Any user-specific files generated  by
  9196.     the system are automatically placed on the user's download list at logon
  9197.     time if such files exist and were not downloaded.
  9198.  
  9199.     Now for the menu selections of the File Section:
  9200.  
  9201.                        FILEMENU_QUIT: (menu selection Q)
  9202.  
  9203.     This selection exits the FILE section  and returns the user to the  MAIN
  9204.     menu of the BBS.
  9205.  
  9206.                        FILEMENU_INFO: (menu selection I)
  9207.  
  9208.     This selection  displays information  on a  file.   An example File Info
  9209.     follows:
  9210.  
  9211.       Filename: MAGCOM.ZIP
  9212.       File Area: E (This month's OS/2 uploads)
  9213.       Uploaded with YMODEM-G protocol
  9214.       Uploaded on 01/01/1990 at 06:41
  9215.       Size is 80896 bytes
  9216.       File was downloaded 35 times
  9217.       Date of last access or download was 01/08/1990
  9218.       Estimated download time: 5 minutes 24 seconds
  9219.  
  9220.       Brief (1-line) description:
  9221.       MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  9222.  
  9223.       Detailed Description Exists. Would you like to view it? (Y/N) =>
  9224.  
  9225.     The "Estimated  download time"  will vary  from user  to user.   Because
  9226.  
  9227.  
  9228.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9229.  
  9230.  
  9231.  
  9232.     Page  7-16                                    Using Magnum BBS as a USER
  9233.                                                               The FILES MENU
  9234.  
  9235.  
  9236.     Magnum stores each  user's last CPS  (file transfer rate),  it uses that
  9237.     figure to determine how long it will take to download any other file  on
  9238.     the system.  If the caller  calls back at a different baud  rate, Magnum
  9239.     will adjust the user's stored CPS accordingly.
  9240.  
  9241.     All downloadable files have brief (1-line) descriptions associated  with
  9242.     them.  Some files have a detailed description associated with them.   If
  9243.     you display [I]nfo  on a file  with a detailed  description, Magnum will
  9244.     prompt you as  to whether you'd  like to view  the detailed description.
  9245.     The detailed description can be up to 150 lines of text in length.
  9246.  
  9247.     If a file has a detailed  description associated with it, the file  will
  9248.     show up in the file listings as having a '+' character in column 1  just
  9249.     before the file's date.
  9250.  
  9251.                        FILEMENU_LIST: (menu selection L)
  9252.  
  9253.     This selection  will list  all available  files on  the board (which the
  9254.     user's security level permits him/her  to know about).  Files  which are
  9255.     password protected will  not show up  in the listings  if the Sysop  has
  9256.     configured the  STARTUP for  that node  not to  show password  protected
  9257.     files.    Each  file  listed  takes  up  2  text lines plus a blank line
  9258.     separating it from the next file.  When choosing the [L]ist option,  the
  9259.     following prompt will appear:
  9260.  
  9261.        Area(s) to list (? for help, blank to quit) =>
  9262.  
  9263.     Note  that  prior  to  displaying  this  prompt, if the file PREDOWN.BBS
  9264.     exists, it will be displayed to the user prior to sending this prompt.
  9265.  
  9266.     This prompt requires the user  to press their ENTER key  after answering
  9267.     their  prompt  because  it  is  not  limited  to a single-keystroke.  By
  9268.     responding with  the ?  character, Magnum  will list  all available file
  9269.     areas authorized to be listed to the user.  File areas are labeled  from
  9270.     A to Z. The + or *  character tells Magnum to list ALL areas  authorized
  9271.     to be listed  to the user.   An example  of a file  appearing in a  file
  9272.     listing follows (note that if the file had an expiration date,  it would
  9273.     be displayed after the file size):
  9274.  
  9275.       + 01/01/1990 MAGCOM.ZIP      80896                       DLs: 45  #204
  9276.       MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  9277.  
  9278.     If a +  character appears in  column 1 (just  before the file  date), it
  9279.     signifies that  a detailed  description (up  to 150  text lines) exists,
  9280.     which can be viewed  by choosing the [I]nfo  option.  The rest  the file
  9281.     description  in  a  list  command  shows  the  date of upload, filename,
  9282.     filesize, it's expiration date (if  any), number of DownLoads, the  file
  9283.     number, and  a one-line  description of  the file.   This information is
  9284.     shown for every file appearing in a file List command.  If a user wanted
  9285.     to list  more than  one file  area at  a time  (but not all areas), they
  9286.     would enter the areas pertaining only  to what they wanted to see.   For
  9287.     example, if the  user wanted to  list just areas  C, H, K  and L, they'd
  9288.     respond to the following prompt as follows:
  9289.  
  9290.  
  9291.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9292.  
  9293.  
  9294.  
  9295.     Using Magnum BBS as a USER                                    Page  7-17
  9296.     The FILES MENU
  9297.  
  9298.  
  9299.  
  9300.     -> Note that the file number (#204 in this example) can be used in
  9301.     -> response to any prompt requiring a file name, instead of the file
  9302.     -> name (answer the prompt with #204, not 204). Note that file numbers
  9303.     -> will change after anytime you perform a 'pack' of  the file database.
  9304.  
  9305.        Area(s) to list (? for help, blank to quit) => CHKL
  9306.  
  9307.     Note that responses of  "C,H,K,L" and "C H K L"  (without the  quotes of
  9308.     course), are also  valid responses.   Only 26 characters  are allowed in
  9309.     response  to  this  prompt  -  therefore,  any  commas (,) or spaces ( )
  9310.     imbedded in the user responses are extraneous and unncessary.
  9311.  
  9312.     NOTE: When listing files by area, Magnum searches the DISPLAY DIRectory
  9313.           for a matching FDIR_x.BBS (or FDIR_x.SCR) file, where 'x' is the
  9314.           same letter as that of the file area about to be displayed. For
  9315.           example, if the user replied to the above prompt with EHK, then
  9316.           Magnum would first display FDIR_E.BBS (if it exists) prior to
  9317.           displaying the files in area E, then FDIR_H.BBS (if it exists)
  9318.           prior to displaying the files in area H, then FDIR_K.BBS (if its
  9319.           exists) prior to displaying the files in area K.
  9320.  
  9321.     FOR USERS OF THE 'EXTENDED FILEBASE' MODULE:
  9322.  
  9323.           When in an 'extended' FileBase [a FileBase other than 0 (main)],
  9324.           Magnum searches the DISPLAY DIRectory for a matching FDIRcnnn.BBS
  9325.           (or FDIRcnnn.SCR) where 'c' is the File Area (A-Z) of FileBase nnn
  9326.           (where nnn can be 001 to 255). Note that nnn must ALWAYS be 3
  9327.           digits. If the matching file exists, Magnum displays it prior to
  9328.           listing the files in that area. For example, if the user is in
  9329.           FileBase 3 and wishes to list the files in area C of that
  9330.           FileBase, then Magnum will search for FDIRC003.BBS and display it
  9331.           prior to listing the files in area C of FileBase 3 if found. If
  9332.           not found, Magnum will simply go ahead and display the files in
  9333.           area C of FileBase 3. If logged on locally, or if snooping on a
  9334.           remote session, you'll see a message something like << File
  9335.           FDIRC003.BBS Not Found >> on your console (this will not show up
  9336.           on the remote user's end.
  9337.  
  9338.           Also, in response to any filename prompt, if using the Extended
  9339.           FileBase, a user may supply a filename any of four ways:
  9340.  
  9341.                  FILENAME.EXT
  9342.                  FILENAME.EXE:base
  9343.                  #nnnnn
  9344.                  #nnnnn:base
  9345.  
  9346.           Note that if they append the :base (ie: "filename.ext:2" for the
  9347.           file "filename.ext" in filebase 2), Magnum will switch to filebase
  9348.           2 in order to access the file. File can be "marked" from any
  9349.           combination of FileBases.
  9350.  
  9351.                         FILEMENU_DL: (menu selection D)
  9352.  
  9353.  
  9354.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9355.  
  9356.  
  9357.  
  9358.     Page  7-18                                    Using Magnum BBS as a USER
  9359.                                                               The FILES MENU
  9360.  
  9361.  
  9362.  
  9363.     This selection allows a user to download one or more files from the BBS.
  9364.     If  the  user  has  not  selected  a default file transfer protocol (via
  9365.     [E]nvironment selection from  main menu), the  user will be  prompted to
  9366.     choose a transfer protocol for this download:
  9367.  
  9368.        Single: X=Xmodem, C=Xmodem-CRC, 1=Xmodem-1K
  9369.         Batch: Y=Ymodem, G=Ymodem-G,   Z=Zmodem,   Q=Quit
  9370.  
  9371.        Transfer protocol (X,C,1,Y,G,Z,Q) =>
  9372.  
  9373.     Once a  download protocol  has been  established (note  that Ymodem-G is
  9374.     dissallowed by Magnum if the user has not made an error-correcting modem
  9375.     connection -  ie:   MNP, ARQ,  etc), the  user will  be prompted for the
  9376.     filename(s)  of  the  file(s)  s/he  wishes  to  download.   If the file
  9377.     transfer protocol chosen  is a Single-file  protocol, only one  filename
  9378.     will be accepted.  If it's a  Batch protocol, up to 9 filenames will  be
  9379.     accepted.  When the user supplies a filename, Magnum makes sure the file
  9380.     exists in it's file database -  if it does, Magnum displays the  size of
  9381.     the file and estimated  download time of the  transfer.  If it  does not
  9382.     exist, Magnum informs  the user of  this.  If  the user supplied  a file
  9383.     extension of .ARC when it should've  been an extension of .ZIP (or  vice
  9384.     versa), Magnum corrects the entry and informs the user.  Magnum will not
  9385.     allow the same filename to be entered twice in any given Batch  download
  9386.     (just in  case the  user forgot  that s/he  already chose  the file  for
  9387.     download).
  9388.  
  9389.     Magnum will inform the user to start the transfer at their end once  the
  9390.     filename(s) for download  have been completed.   The user  must refer to
  9391.     their communications program's  documentation for how  to invoke a  file
  9392.     transfer with their software.  Some communications programs such as  our
  9393.     MAGCOM program  will automatically  start a  Zmodem file  download -  no
  9394.     interaction with the user is required (not applicable to MAGCOM  version
  9395.     1.0). Zmodem Crash Recovery is supported by Magnum on aborted downloads.
  9396.  
  9397.     When  the  file  transfer  is  over,  Magnum  informs the user their CPS
  9398.     (characters per  second transfer  rate) if  successful, otherwise Magnum
  9399.     will display a "Xfer Failed or Cancelled" message.
  9400.  
  9401.                         FILEMENU_UL: (menu selection U)
  9402.  
  9403.     This file selection allows a user to upload a file to the BBS.  The user
  9404.     will be presented the following series of prompts:
  9405.  
  9406.        Filename you will upload? (blank quits) =>
  9407.  
  9408.     Not that prior to displaying this prompt, if the file PREUP.BBS  exists,
  9409.     it will be displayed to the user prior to sending this prompt.
  9410.  
  9411.     At this point, the user will  enter a filename for upload.   Magnum then
  9412.     checks to  see if  the file  exists in  the database.   If  it does, the
  9413.     upload will  be disallowed.   Magnum  will also  check to  see that  the
  9414.     filename is not CMD.EXE, COMMAND.COM, or  a device name - if it  is, the
  9415.  
  9416.  
  9417.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9418.  
  9419.  
  9420.  
  9421.     Using Magnum BBS as a USER                                    Page  7-19
  9422.     The FILES MENU
  9423.  
  9424.  
  9425.     upload is disallowed.  Magnum also checks to see that the filename  does
  9426.     not contain special characters (ie:  <, >, |, etc) and that the filename
  9427.     extension  does  not  exceed  3  characters  (to  the  right  of  the  .
  9428.     character),  and  that  the  filename  does  not  exceed  12  characters
  9429.     (including the . character).   Magnum also searches BADUPLD.LST in  your
  9430.     SESSION DIRectory (if it exists) to make sure it's not in the bad upload
  9431.     list  (see  BADUPLD.LST  in  the  description  of  files  in the SESSION
  9432.     DIRectory).
  9433.  
  9434.     Once Magnum has determined that the filename supplied is a valid  upload
  9435.     filename, it  will prompt  the user  for an  upload protocol (unless the
  9436.     user has a default protocol  selected in their environment).   Note that
  9437.     Magnum only allows 1 file to be  uploaded at any given time even if  the
  9438.     upload protocol being used for the transfer is a Batch protocol.
  9439.  
  9440.     Next, Magnum  will prompt  the user  for a  one-line description  of the
  9441.     file:
  9442.  
  9443.        Please enter a one-line description of the file:
  9444.  
  9445.     Next, Magnum  will prompt  the user  as to  whether the  file should  be
  9446.     password protected:
  9447.  
  9448.        Do you want this file password protected? (Y/N) =>
  9449.  
  9450.     Next, Magnum will prompt the user for an expiration date:
  9451.  
  9452.        Do you want an expiration date for this file? (Y/N) =>
  9453.  
  9454.     If the user selects  Y, an expiration date  prompt will appear, and  the
  9455.     file will be deleted as of 00:00 on the expiration date.
  9456.  
  9457.     Next, if the user is allowed to  upload to more than one file area,  the
  9458.     following prompt will appear:
  9459.  
  9460.        Save file to which area? (? for list) =>
  9461.  
  9462.     When the user  answers this prompt,  Magnum will display  how many bytes
  9463.     are available on  the upload disk  drive containing the  directory which
  9464.     will house the upload.
  9465.  
  9466.     Next, Magnum will prompt the user  as to whether they'd like to  leave a
  9467.     detailed description of the file:
  9468.  
  9469.        Would you like to leave a more detailed description of
  9470.        the file in message form? (Y/N) =>
  9471.  
  9472.     If the user answers with Y,  Magnum will invoke the line editor  for the
  9473.     user to  enter up  to 150  text lines  describing additional information
  9474.     about the file.
  9475.  
  9476.     Next, Magnum informs the user that  it's ready to receive the file  - it
  9477.     tells the  user the  filename and  protocol it  expects.   Note that  if
  9478.  
  9479.  
  9480.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9481.  
  9482.  
  9483.  
  9484.     Page  7-20                                    Using Magnum BBS as a USER
  9485.                                                               The FILES MENU
  9486.  
  9487.  
  9488.     you're  logged  on  locally  (console),  Magnum  will prompt you for the
  9489.     source filename for a local copy.
  9490.  
  9491.     Once  the  transfer  completes  successfully,  Magnum checks the file by
  9492.     calling the CHKANSI.EXE program - if it finds any ANSI escape  sequences
  9493.     which redefine a keyboard key, it  locks the user out of the  system and
  9494.     disconnects.  If  the check is  successful (no harmful  escape sequences
  9495.     found), Magnum then  checks to see  if the uploaded  filename is a  .ZIP
  9496.     file - if it  is, it checks to  see if the file  ZIPCMT.x exists (x=node
  9497.     number user is on) - if it exists, it adds the contents of that file  to
  9498.     the .ZIP file as a ZIP comment.  Magnum then adds the file entry to  the
  9499.     database and displays the user's  CPS transfer rate and compensates  the
  9500.     user (if defined)  with time spent  for the upload,  and gives the  user
  9501.     credit for the upload.
  9502.     NOTE: In the event of Magnum locking out a user due to an upload
  9503.           containing harmful ANSI escape characters which will redefine
  9504.           keyboard key(s), Magnum will generate a message to the Sysop about
  9505.           this action. Because compressed files (ARC, ZIP) can sometimes
  9506.           reproduce this ANSI pattern, CHKANSI.EXE will lock the user out of
  9507.           the system even though there may not be any ANSI escape sequences
  9508.           to redefine the keyboard when the file is uncompressed.
  9509.        -> If you wish to disable this automatic checking of ARC, ZIP or
  9510.        -> files with other extensions, see the description of NOANSCHK.LST
  9511.        -> in the chapter entitled "Back to Display Files & Subdirectories",
  9512.        -> in the "SESSION Directory" section.
  9513.  
  9514.     If the uploaded file has an  extension of .ARC or .ZIP, Magnum  performs
  9515.     an integrity check on  the file.  If  the integrity check fails,  Magnum
  9516.     automatically deletes the file and no upload credit is acknowledged.
  9517.  
  9518.                         FILEMENU_NEW: (menu selection N)
  9519.  
  9520.     This menu selection is identical to the [L]ist selection except that  it
  9521.     only lists files since the last  time the user selected the [N]ew  files
  9522.     selection.  NOTE that Magnum stores 27 separate dates for this selection
  9523.     for each user.  It stores the date this selection was last used for each
  9524.     of the  26 different  file areas  (A to  Z), and  for the  + (all files)
  9525.     selection.   The prompt  also gives  the user  a chance  to override the
  9526.     default  date.    When  [N]ew  Files  is  selected, the following prompt
  9527.     appears:
  9528.  
  9529.        Which area (A-Z, + for all, ? for list, blank to quit) =>
  9530.  
  9531.     Once the user enters this prompt, another prompt appears which will look
  9532.     similar to the following:
  9533.  
  9534.        Enter date MM/DD/YYYY (default = 01/08/1990) =>
  9535.  
  9536.     Note that if the user has chosen [E]uropean date formats, the MM/DD/YYYY
  9537.     would  appear  as  DD.MM.YYYY  to  the  user.   This applies to all date
  9538.     prompts on the system.  If the user supplies a date in response to  this
  9539.     prompt, that date is checked and will be used instead, otherwise, if the
  9540.     user simply presses ENTER, the default date displayed within parenthesis
  9541.  
  9542.  
  9543.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9544.  
  9545.  
  9546.  
  9547.     Using Magnum BBS as a USER                                    Page  7-21
  9548.     The FILES MENU
  9549.  
  9550.  
  9551.     will be  used instead.   The  listing which  will appear after answering
  9552.     this prompt will have the same  format as that used by the  [L]ist Files
  9553.     menu selection.
  9554.  
  9555.                        FILEMENU_SRCH: (menu selection T)
  9556.  
  9557.     This menu selection allows the user to perform a text search of files on
  9558.     the board.  The text search searches both the filenames and descriptions
  9559.     in  it's  search.    When  this  menu selection is chosen, the following
  9560.     prompt appears:
  9561.  
  9562.        Which area to search (A-Z, + for all, ? for list, blank to quit) =>
  9563.  
  9564.     Once the user answers  this prompt with one  of A-Z or +,  the following
  9565.     prompt will appear:
  9566.  
  9567.        Text to search for (blank quits) =>
  9568.  
  9569.     Assuming the user  supplied a non-blank  answer to the  prompt, the next
  9570.     prompt will appear:
  9571.  
  9572.        Files newer than (MM/DD/YYYY) (ENTER=01/01/1980) =>
  9573.  
  9574.     The user can either accept the default date by pressing ENTER, or supply
  9575.     a  different  date.    Once  this  prompt has been answered, Magnum will
  9576.     search the files database and  display (in [L]ist Files format),  a list
  9577.     of all files (if any) it  finds matching the text supplied by  the user.
  9578.     Both file  description and  filename fields  are searched  for a  match.
  9579.     Note   that   the   search    is   case   independent,   meaning    that
  9580.     uppercase/lowercase  is  not  an  issue  (ie:    Graphics, graphics, and
  9581.     GRAPHICS are identical as far as  Magnum is concerened).  Note that  any
  9582.     matches in  a filename  will result  in the  'matching' portion  of that
  9583.     filename  being  displayed  in  lowercase.    Any  matches  in  a   file
  9584.     description will be bracketed (within [  and ] characters).  At the  end
  9585.     of  the  list  of  files  matching  the search criteria (if any), Magnum
  9586.     displays the "Press ENTER to continue ..." prompt.
  9587.  
  9588.                        FILEMENU_STATS: (menu selection S)
  9589.  
  9590.     This  menu  selection  presents  the  user  with  statistics  on   their
  9591.     upload/downloads performed both for  the period and since  they've first
  9592.     called the system.  The list might look somewhat like the following:
  9593.  
  9594.           Your File Statistics:
  9595.  
  9596.         Your adjusted CPS (characters/second) transfer rate is: 256
  9597.         Your upload areas: ACEFHIJKL
  9598.         Your download areas: ACEFHIJKLZ
  9599.         FREE download areas (not affecting UL/DL ratio): CFJ
  9600.         Your list areas: ACEFHIJKLZ
  9601.         Totals:
  9602.            You've uploaded about 30 Kbytes in 2 files
  9603.            You've downloaded about 102 Kbytes in 6 files
  9604.  
  9605.  
  9606.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9607.  
  9608.  
  9609.  
  9610.     Page  7-22                                    Using Magnum BBS as a USER
  9611.                                                               The FILES MENU
  9612.  
  9613.  
  9614.            You've downloaded 2 files from FREE download areas
  9615.         Your totals for the week:
  9616.            You've downloaded about 0 Kbytes in 0 files
  9617.            Maximum allowed: 70000 Kbytes or 700 files
  9618.  
  9619.     Note that "Your totals for the week:"  is displayed to those who have  a
  9620.     period type of "Weekly".  "week" would display as "day" to daily  users,
  9621.     "month" to monthly users, and "year" to yearly users.
  9622.  
  9623.                       FILEMENU_GOODBYE: (menu selection G)
  9624.  
  9625.     This menu selection is identical  to the Goodbye selection in  any other
  9626.     menu (main menu, message menu, etc).   It firsts prompts the user  for a
  9627.     confirmation of their intentions to  log off, then prompts the  user for
  9628.     whether  they  wish   to  leave  a   Comment  to  the   sysop  (see  the
  9629.     VERIFY_GOODBYE option in the STARTUP file).
  9630.  
  9631.                        FILEMENU_HELP: (menu selection ?)
  9632.  
  9633.     This  menu  selection  will  display  the  file FILEHELP.BBS in the HELP
  9634.     directory if it exists, otherwise it will display a "Help not available"
  9635.     message.
  9636.  
  9637.                         FILEMENU_EXT: (menu selection A)
  9638.  
  9639.     This menu selection (EXT stands  for EXTernal programs) allows the  user
  9640.     to Access a compressed (ARC or ZIP) file.  The user can view the list of
  9641.     members within a compressed file, read any readable members, or download
  9642.     any of the members within the  file.  This selection does not  require a
  9643.     file extension (ie:  .ARC, .ZIP,  etc) - it will find the  file matching
  9644.     the first acceptable extension.  By 'acceptable extension', we mean .ARC
  9645.     and .ZIP (built in).  You can add support for additional compressed file
  9646.     formats  (which  Magnum  will  recognize  and  process)  by  creating or
  9647.     updating  the  file  COMPRESS.LST  in  your  SESSION  DIRectory.
  9648.  
  9649.     -> If you wish to provide Magnum with compression formats in addition to
  9650.     -> .ARC  and  .ZIP  compression  formats,  refer  to  the description of
  9651.     -> COMPRESS.LST  in  the  chapter  entitled  "Back  to  Display  Files &
  9652.     -> Subdirectories", in the "SESSION Directory" section of that chapter.
  9653.  
  9654.                        FILEMENU_READ: (menu selection R)
  9655.  
  9656.     This  menu  selection  allows  the  user  to  read a non-binary file.  A
  9657.     non-binary file is a file containing only readable text (ie:  files with
  9658.     extensions of .EXE, .COM, .SYS,  .DLL, .ZIP, .ARC, etc are  binary files
  9659.     and not readable).  If a file is read in this fashion, rest assured that
  9660.     any imbedded MILC commands  (either intentional or non-intentional)  are
  9661.     ignored (not processed).
  9662.  
  9663.                       FILEMENU_CHANGE: (menu selection C)
  9664.  
  9665.     This menu  selection allows  the user  to change  a file  they uploaded.
  9666.     First, Magnum will prompt the user for the filename:
  9667.  
  9668.  
  9669.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9670.  
  9671.  
  9672.  
  9673.     Using Magnum BBS as a USER                                    Page  7-23
  9674.     The FILES MENU
  9675.  
  9676.  
  9677.  
  9678.        Name of file to change? (blank quits) =>
  9679.  
  9680.     If the user supplies a filename they didn't upload, Magnum will disallow
  9681.     any changes.  Otherwise, a display similar to the following would show:
  9682.  
  9683.        File was found in area "E"
  9684.  
  9685.         Filename: "MAGCOM.ZIP" - Area: "E" - Public
  9686.                Expiration Date: None
  9687.           Detailed Description: Does not exist
  9688.        1-line Description:
  9689.        MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  9690.  
  9691.        0) Quit
  9692.        1) Delete
  9693.        2) Change Area (E)
  9694.        3) Make Private (password protect)
  9695.        4) Change FileName (MAGCOM.ZIP)
  9696.        5) Change Expiration Date ()
  9697.        6) Change Brief (1-line) description
  9698.        7) Add Detailed Description
  9699.  
  9700.        Choice (0-7) =>
  9701.  
  9702.     The above submenu is self-explanatory. The user can change 7 different
  9703.     things for any file they've uploaded.
  9704.  
  9705.                      FILEMENU_MAKELIST: (menu selection M)
  9706.  
  9707.     This menu selection  is identical to  the [N]ew Files  selection, except
  9708.     that it's output is  compressed into a .ZIP  or .ARC file (depending  on
  9709.     the  user's  Environment  default  for  System  Compression  Type).  The
  9710.     resultant .ZIP or .ARC file is password protected with the user's  logon
  9711.     password,  and  placed  in  the  RJE  file  area  for  download.   It is
  9712.     automatically marked with an  expiration date of the  next day.  If  the
  9713.     user  downloads  the  file  successfully  before  midnight,  the file is
  9714.     deleted immediately.  This menu selection creates an up-to-date list  of
  9715.     all  files  available  for  download  on  the  BBS  (which  the  user is
  9716.     authorized to download).  Note that the created filename has the  format
  9717.     Uxxxxx@y.ZIP (or  .ARC) where  xxxxx is  the user's  ID number  (up to 5
  9718.     digits), and y is a hex number  ranging from 0 to F indicating how  many
  9719.     of these RJE  files s/he created  today.  If  y is 0  this is the  first
  9720.     file, if y is 5 this is the 6th  file.  If y is F this is the  16th file
  9721.     and Magnum will disallow  creation of any more  RJE files for this  user
  9722.     until the next day.
  9723.  
  9724.                        FILEMENU_OPT1: (menu selection 1)
  9725.                        FILEMENU_OPT2: (menu selection 2)
  9726.  
  9727.     These menu selections  are normally turned  off by setting  the security
  9728.     level to that of  one higher than any  of your users unless  you plan on
  9729.     using them.  When selected, Magnum will display the file FILEOPT1.BBS or
  9730.  
  9731.  
  9732.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9733.  
  9734.  
  9735.  
  9736.     Page  7-24                                    Using Magnum BBS as a USER
  9737.                                                               The FILES MENU
  9738.  
  9739.  
  9740.     FILEOPT2.BBS from your DISPLAY DIRectory if it exists.  These files  are
  9741.     created by you in order to supply 'hooks' to external programs in  areas
  9742.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  9743.     these files.
  9744.  
  9745.                        FILEMENU_BASE: (menu selection F)
  9746.  
  9747.     This menu selection  is for those  who've purchased [and  installed] our
  9748.     'Extended MessageBase'  module.   If you're  not using  this module, you
  9749.     should raise the security  level of this menu  option such that it  does
  9750.     not appear on any user's screen.
  9751.  
  9752.                        FILEMENU_UTILS: (menu selection E)
  9753.  
  9754.     This menu selection is identical to choosing the [U]tils selection  when
  9755.     at the "- More -" during file listings.  This selection allows the  user
  9756.     to mark files,  unmark files, access  compressed files, obtain  detailed
  9757.     information on files, modify their list of marked files, etc.
  9758.  
  9759.  
  9760.  
  9761.  
  9762.  
  9763.  
  9764.  
  9765.  
  9766.  
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772.  
  9773.  
  9774.  
  9775.  
  9776.  
  9777.  
  9778.  
  9779.  
  9780.  
  9781.  
  9782.  
  9783.  
  9784.  
  9785.  
  9786.  
  9787.  
  9788.  
  9789.  
  9790.  
  9791.  
  9792.  
  9793.  
  9794.  
  9795.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9796.  
  9797.  
  9798.  
  9799.     Using Magnum BBS as a USER                                    Page  7-25
  9800.     The SYSOP MENU
  9801.  
  9802.  
  9803.  
  9804.     The SYSOP MENU currently has 11 menu selections available:
  9805.  
  9806.                         SYSMENU_QUIT: (menu selection Q)
  9807.  
  9808.     Like any other QUIT MENU command, selecting this menu option will return
  9809.     the user to the main menu.
  9810.  
  9811.                         SYSMENU_CMD: (menu selection O)
  9812.  
  9813.     This menu selection will  invoke the operating system's  CMD.EXE (OS/2's
  9814.     command interpreter).  This is available whether the user is on  locally
  9815.     or remotely.   To exit the  command interpreter and  return to the  BBS,
  9816.     enter the command EXIT followed by your ENTER key.
  9817.  
  9818.                        SYSMENU_PRINT: (menu selection P)
  9819.  
  9820.     This menu selection gives you  the option of printing the  user database
  9821.     (one page  per user)  or address  lables.   Choosing this menu selection
  9822.     results in Magnum  prompting you for  which filename or  device to print
  9823.     to.  In  most systems, PRN  is the device  name of the  printer.  If you
  9824.     specified a filename instead, output  will be printed to that  filename.
  9825.     The next  prompt you  will see  asks which  security level  you wish  to
  9826.     print.  The prompt after that  asks if you want [R]ecord information  or
  9827.     [A]ddress Labels to print.  If you choose [A]ddress Labels, you'll get a
  9828.     "[P]rint, [A]lignment" response.   By choosing [A]lignment, Magnum  will
  9829.     print 2 dummy labels on your  printer, giving you a chance to  align the
  9830.     labels  in  your  printer.    Once  you're satisfied with the alignment,
  9831.     choose not  to reprint  the test  - Magnum  will then  print the address
  9832.     labels.  Note that you can press <Ctrl-X> during printing to abort.   If
  9833.     you're printing address labels, it's recommended to set your printer  in
  9834.     condensed mode.  Magnum assumes 6 lines between labels and assumes  each
  9835.     label can hold 5 lines of  address information (the 6th line is  a blank
  9836.     line separating labels).
  9837.  
  9838.     NOTE: You may also print out "Mail" accounts.
  9839.  
  9840.                         SYSMENU_MSG: (menu selection M)
  9841.  
  9842.     This menu selection allows the  user (sysop) to fiddle with  the message
  9843.     database.  When you select this option, the record for the first message
  9844.     on the system  is displayed along  with the prompt  for this area.   The
  9845.     display might look similar to the following:
  9846.  
  9847.        MSGBASE: 0 RECNUM: 0 (actual), 0 (recorded)
  9848.        DELETED: N
  9849.        CONF: H
  9850.        PRIVATE: N
  9851.        RECEIVED: N,  MSGMILC: '@',  ECHO: N
  9852.        FROM: /0 (CHUCK B GILMORE)
  9853.        TO: ALL
  9854.        NUM: /0
  9855.        #READ: 68
  9856.  
  9857.  
  9858.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9859.  
  9860.  
  9861.  
  9862.     Page  7-26                                    Using Magnum BBS as a USER
  9863.                                                               The SYSOP MENU
  9864.  
  9865.  
  9866.        SUBJ: Welcome!
  9867.        DATE: 09/01/1989
  9868.        TIME: 06:00                FROM_PSERNUM: 1234567890
  9869.        EXPDATE: (nul)              TO_PSERNUM: 1234567890
  9870.        CC: N                       SENT: Y
  9871.        FWD: N  USERNAME: "CHUCK B GILMORE"
  9872.        RECEIPT: N
  9873.        REPLIES: N
  9874.        ISREPLY: N
  9875.        RECVD_DATE: (nul)
  9876.        RECVD_TIME: (nul)
  9877.        FILENAME: H9010916.835
  9878.  
  9879.        FIELDNAME, Next, Quit, Prev, Match, Ref, Erased, Hardcopy,
  9880.                   Base, From, To, Userid, Date, Subj, View =>
  9881.  
  9882.     The fields listed are all  changeable except for the RECNUM  field which
  9883.     is merely an informative field for your information only.  To change any
  9884.     of the fields,  enter the full  fieldname.  For  example, to change  the
  9885.     SUBJ field, type SUBJ followed by  your ENTER key.  You'll get  a prompt
  9886.     asking for the new SUBJ which you might respond with "Welcome to  Magnum
  9887.     BBS!".  You can change any of the fields simply by entering the name  of
  9888.     the field and pressing ENTER -  Magnum will then prompt you for  the new
  9889.     value of the field.  All fields which hold one of two values (Y or N for
  9890.     Yes or No) are called boolean fields (boolean refers to fields which can
  9891.     hold one of  two things -  Yes or No,  or programmers are  more familiar
  9892.     with TRUE or  FALSE).  Except  for the CONF:   field which  can hold any
  9893.     alphabetic value, boolean fields can be interpreted (via example) as:
  9894.  
  9895.        DELETED: N
  9896.  
  9897.     simply ask  yourself a  question with  the fieldname  - Is  this message
  9898.     DELETED?  The value shows N, therefore, NO, the message is NOT  deleted.
  9899.     Let's try it with another boolean field:
  9900.  
  9901.        ISREPLY: N
  9902.  
  9903.     simply ask  yourself Is  this message  a reply  (to a previous message)?
  9904.     The value shows N, therefore, NO, the message is NOT a reply.  Since the
  9905.     values for the fields are self-explanatory once you understand what  the
  9906.     fieldnames refer to, let's describe what each fieldname refers to:
  9907.  
  9908.        MSGBASE: Will always be 0 unless you're using the optional 'Extended
  9909.                 MessageBase' module, otherwise can be 0 to 255.
  9910.  
  9911.        RECNUM: Not Changeable - for your information only
  9912.  
  9913.        DELETED: Boolean field (Y=Deleted, N=Not Deleted)
  9914.  
  9915.        CONF: Conference area of message (one of A to Z)
  9916.  
  9917.        PRIVATE: Boolean field (Y=Private, N=Not Private)
  9918.  
  9919.  
  9920.  
  9921.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9922.  
  9923.  
  9924.  
  9925.     Using Magnum BBS as a USER                                    Page  7-27
  9926.     The SYSOP MENU
  9927.  
  9928.  
  9929.        RECEIVED: Boolean field (Y=Received by addressee, N=not received)
  9930.  
  9931.        MSGMILC: Shows the MILC command character used for this message. This
  9932.                 does not necessarily mean that any MILC commands were used.
  9933.  
  9934.        ECHO: Shows whether this message is echoable (Y) or not (N) to other
  9935.              systems. Echoable messages generally have different 'from' and
  9936.              'to' serial numbers.
  9937.  
  9938.        FROM: Who composed the message (ie: /0 (CHUCK B GILMORE))
  9939.  
  9940.        TO: Who the message is to (ie: /IDNUM (Firstname M, Lastname) or ALL)
  9941.  
  9942.        NUM: IDNUM of original addresse (if this is a CC or FWD message)
  9943.  
  9944.        #READ: Number of times message was read.
  9945.  
  9946.        SUBJ: Subject of message.
  9947.  
  9948.        DATE: Date of message
  9949.  
  9950.        TIME: Time of messaage
  9951.  
  9952.        FROM_PSERNUM: The serial# of the originating BBS (usually yours).
  9953.  
  9954.        TO_PSERNUM: The serial# of the target BBS (usually yours).
  9955.  
  9956.        SENT: If the 'from' and 'to' serial numbers are identical, this field
  9957.              will always be Y (yes). However, if the 'from' and 'to' serial
  9958.              numbers are different, it will be Y (yes) only if the message
  9959.              has been sent via AMMO (refer to chapter on Magnum-to-Magnum
  9960.              Remote Mail), otherwise N (no).
  9961.  
  9962.        EXPDATE: Expiration date of msg (MM/DD/YYYY or DD.MM.YYYY) or (nul)
  9963.  
  9964.        CC: Boolean field (Y=this is a CC (carbon copy), N=this is not a CC)
  9965.  
  9966.        FWD: Boolean field (Y=this is a forwarded message, N=not forwarded)
  9967.  
  9968.        RECEIPT: Boolean field (Y=receipt requested, N=no receipt requested)
  9969.  
  9970.        REPLIES: Boolean field (Y=replies exist, N=replies do not exist)
  9971.  
  9972.        ISREPLY: Boolean field (Y=this is a reply, N=this is not a reply)
  9973.  
  9974.        RECVD_DATE: Date msg was received (MM/DD/YYYY or DD.MM.YYYY) or (nul)
  9975.  
  9976.        RECVD_TIME: Time message was received
  9977.  
  9978.        FILENAME: Filename of file holding actual text of message (same as
  9979.                  REF# but with the . to delimit the filename extension).
  9980.                  Note that the first character of the filename determines
  9981.                  which subdirectory (A-Z) of the MESSAGE subdirectory
  9982.  
  9983.  
  9984.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  9985.  
  9986.  
  9987.  
  9988.     Page  7-28                                    Using Magnum BBS as a USER
  9989.                                                               The SYSOP MENU
  9990.  
  9991.  
  9992.                  houses the file.
  9993.  
  9994.     This explains the FIELD entries. The actual prompt:
  9995.  
  9996.        FIELDNAME, Next, Quit, Prev, Match, Ref, Erased, Hardcopy,
  9997.             Base, From, To, Userid, Date, Subj, View =>
  9998.  
  9999.     expects you to enter either a FIELDNAME, or one of the 6 command letters
  10000.     (N,Q,P,M,R,E,F,T,U,D,S,V).  The command letters are defined as follows:
  10001.  
  10002.        N = Next. Show next message entry (wraps to 0 if at end of database).
  10003.        Q = Quit. Quits message database section and returns to Sysop menu.
  10004.        P = Prev. Show previous message entry (wraps to last entry if at
  10005.            beginning of database).
  10006.        M = Match. Prompts for a Conference letter to match. All Next and
  10007.            Prev commands will only display the records who's conference area
  10008.            matches what you've supplied here.
  10009.        R = Reference#. You can supply a reference# here and Magnum will
  10010.            bring up the record for that message.
  10011.        E = Erased. Magnum will only display records for those messages which
  10012.            have been erased (deleted). If you haven't done a "[S]tatus of
  10013.            Databases" command, then erased messages should still be Viewable
  10014.            (with the View command), otherwise the message really is deleted
  10015.            (refer to the DELETED field).
  10016.        H = Hardcopy. Prints message on your printer, unprocessed.
  10017.        B = Base. If using the optional 'Extended MsgBase', you can change
  10018.            the MsgBase here.
  10019.        F = Only display records who's FROM field matches the FROM ID you'll
  10020.            supply in answer to this prompt.
  10021.        T = Only display records who's TO field matches the TO ID you'll
  10022.            supply in answer to this prompt.
  10023.        U = Only displays recrods who's FROM or TO field matches the user ID
  10024.            you'll supply in answer to this prompt.
  10025.        D = Date. Only displays records which are greater than or equal to
  10026.            the date answer you'll supply in answer to this prompt.
  10027.        S = Subject. Only displays records which match the Subject field
  10028.            you'll supply.
  10029.        V = View the message text. This is identical to reading the message
  10030.            when in the "Read Messages Submenu". The difference is that when
  10031.            you choose the View option from here, Magnum will not update the
  10032.            message header (ie: won't count it as being read or received, and
  10033.            no receipt will be generated if the message is to you with a
  10034.            receipt requested).
  10035.  
  10036.     As you can  see, the Message  Database area of  the Sysop menu  can be a
  10037.     very powerful utility.   You can  change most any  field of any  message
  10038.     header.  NOTE THAT ALL CHANGES  MADE TO "FROM" AND "TO" MUST  START WITH
  10039.     THE '/' CHARACTER (note that a recipient of ALL is designated as /-1).
  10040.  
  10041.     Note that if you choose 'H' (hardcopy), you will be prompted for a  file
  10042.     or devicename  to print  the message  out to.   Printing  will print any
  10043.     imbedded MILC commands unprocessed.
  10044.  
  10045.  
  10046.  
  10047.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10048.  
  10049.  
  10050.  
  10051.     Using Magnum BBS as a USER                                    Page  7-29
  10052.     The SYSOP MENU
  10053.  
  10054.  
  10055.                         SYSMENU_USER: (menu selection U)
  10056.  
  10057.     The USER DATABASE area of the Sysop Menu is another powerful sysop tool.
  10058.     When you enter this area of the Sysop menu, the record for ID /0 (Sysop)
  10059.     will automatically be displayed.  As with the Message database area, ANY
  10060.     fieldname (with the exception of the USER ID) is changeable.  An example
  10061.     user record might look something like the following:
  10062.  
  10063.        LASTNAME=DOE, FIRSTNAME=JOHN, MIDDLENAME=C
  10064.        ID=/0, STREET1=John Doe's BBS,  TYPE=U, REUSE=N
  10065.        STREET2=12345 Abbey Road
  10066.        CITY=Los Angeles, STATE=CA, ZIP=90067, COUNTRY=USA
  10067.        FIRSTCALL=10/05/1989, LASTCALL=01/12/1990, TIMELAST=18:24
  10068.        PASSWORD=NHOJ, DOB=07/01/1958 (age: 31), DATEFORMAT=U, RJEJOBS=3
  10069.        PHONE1=213-555-1234, PHONE2=213-555-4321
  10070.        CPUTYPE=IBM PS/2 model 80, CONFERENCES=ACEFGH
  10071.        MEMODATE1=, MEMODATE2=, PRIVMSG=Y, DELMSG=Y, SUB_FILEDEL=N
  10072.        SYSOP_COMMENT=Master SYSOP
  10073.        XFERTYPE=N, PERIODTYPE=W, EXPERT=N, LOCKED_OUT=N, COLOR=Y, DISPLAY_MO
  10074.        ERASE_MORE=Y, HOTKEYS=Y, LINES_PAGE=23, LEVEL=1000, UPLOADS=102
  10075.        DOWNLOADS=36, CPS=2056, UDRATIO=0, TTL_CALLS=413, REMAINING=94
  10076.        REMAINING_PERIOD=659, K_UL=4568, K_DL=2171, PERIOD_DL=700
  10077.        PERIOD_K_DL=70000, DL_THIS_PERIOD=0, K_DL_THIS_PERIOD=0
  10078.        DAILY_TIME=120, DAILY_DL=100, DAILY_K_DL=10000, PRIVACY=OFF
  10079.        FILE_U_AREAS=ACEFHIJKLSZQ, FREE_DL_AREAS=CFJ
  10080.        FILE_D_AREAS=ACEFHIJKLSZQ, FREE_DOWNLOADS=1
  10081.        FILE_L_AREAS=ACEFHIJKLSZQ, FILEGRP=0, FILEBASE=0
  10082.        MSG_R_AREAS=ACHKLSWZ, MSGGRP=0, MSGBASE=0, RMAIL=N
  10083.        MSG_W_AREAS=ACHKLSWZ
  10084.        MSG_L_AREAS=ACHKLSWZ
  10085.        DISP_CMDS=ABCDEFGHIJKLMNOPQRSTUVWXYZ, COMPRESS=Z, PRIVM=108, PUBLM=34
  10086.        I= OS/2 PM COMMUNICATIONS BBS
  10087.        COMMAND (FIELDNAME, Quit, Match, Nxt, Prev, Srch, Del, /ID) =>
  10088.  
  10089.     The last  line of  the display  (in hi-intensity  cyan on color systems)
  10090.     prompts you for either a FIELDNAME or  the first letter of one of the  6
  10091.     commands  (Quit,  Match,  Nxt,  Prev,  Srch,  Del),  or  the  ID  number
  10092.     (beginning  with  the  forward  slash  (/)  character) of the user who's
  10093.     record you'd like to bring up.  If you are seeing the display in  color,
  10094.     FIELDNAMES appear in hi-intensity  green, while their changeable  values
  10095.     appear in hi-intensity white.   Note that any field (with  the exception
  10096.     of ID) can be changed.  The ID number is identical to the record  number
  10097.     (position  in  database  file),  which  is  why the user database is not
  10098.     packable (unlike the file and message databases which are packable).
  10099.  
  10100.     We've already explained what supplying a forward slash and user ID does,
  10101.     so lets  explain the  other 6  commands.   Only the  first letter of the
  10102.     other 6 commands  need be supplied  (ENTER key is  required after making
  10103.     any selection here).  The Quit command quits the User Database area  and
  10104.     returns you back to the Sysop Menu.  The Match command prompts you for a
  10105.     security  level  (or  match  on  MAIL  accounts) - after you answer that
  10106.     prompt with a  security level, Magnum  will display only  those users in
  10107.     the database who's  security level matches  the one you  just supplied -
  10108.  
  10109.  
  10110.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10111.  
  10112.  
  10113.  
  10114.     Page  7-30                                    Using Magnum BBS as a USER
  10115.                                                               The SYSOP MENU
  10116.  
  10117.  
  10118.     this will be true for the Nxt  and Prev commands as well - use  the Quit
  10119.     command to stop the  Match process.  The  Nxt command will bring  up the
  10120.     next record  in the  user database  - if  you're already  at the highest
  10121.     record number, it will wrap to record 0. The Prev command will bring  up
  10122.     the previous record number - if you're currently at record number 0  (ID
  10123.     of /0), it will wrap to  the last record (highest record number)  in the
  10124.     database.  The Srch command will invoke the User Search command which is
  10125.     identical to the  MAINMENU_USERS (main menu  selection U) command.   The
  10126.     Del command will prompt you as to whether you wish to delete this user -
  10127.     if you delete the user, you  can undelete them later by issuing  the /ID
  10128.     command and answering Yes to  the "undelete" prompt (unless the  user id
  10129.     has been re-assigned to a new user).
  10130.  
  10131.     The FIELDNAME's are all self explanatory.  Simply enter the FIELDNAME of
  10132.     a field you wish to change.  A prompt for the new fieldname will  appear
  10133.     asking you for the new value to  assign to the field.  Note that  if you
  10134.     wish to change the MIDDLENAME field of a user's record to blank  (none),
  10135.     you'll need to  change the MIDDLENAME  to a value  of X (the  letter X).
  10136.     Note that if you are changing  a user's record and that user  happens to
  10137.     be online at the same time, all fields will accept and apply the  change
  10138.     except for the  LEVEL field.   To change the  security level for  a user
  10139.     who's already online, you'll need to change it at the MBBS sysop console
  10140.     with the "x  LEVEL yyyy" command  (where x is  the node they're  on, and
  10141.     yyyy is the new security level).
  10142.  
  10143.     Note that MEMODATE1,  MEMODATE2 and SYSOP_COMMENT  are for your  (Sysop)
  10144.     private use - you  may do with these  fields as you wish.   The memodate
  10145.     field is typically used when  you're running your BBS as  a subscription
  10146.     BBS system.  You would enter the user's subscription expiration date  in
  10147.     this field  and use  MBBSEXEC.EXE (see  the chapter  on MBBSEXEC)  sysop
  10148.     utility to lower  this user's security  and access levels  on the user's
  10149.     expiration date.
  10150.  
  10151.     The only other field that needs some explaining is the DISP_CMDS  field.
  10152.     Refer to the chapter on MILC commands.  This field contains the  letters
  10153.     (A-Z)  of  allowable  MILC  commands  the  user can use in message text.
  10154.     Typically this value is "AO" (@A commands are for color, @O commands are
  10155.     for  other,  miscellaneous  information  display).    In  this case, the
  10156.     Sysop's record is being displayed, and the Sysop should be able to issue
  10157.     ANY MILC  command within  any message  text s/he  likes - therefore, all
  10158.     letters of the alphabet are defined (even though there aren't that  many
  10159.     MILC categories  - this  way, you  won't have  to change  it for  future
  10160.     releases  of  Magnum  which  may  contain  additional categories of MILC
  10161.     commands in the future).  If a  user enters a MILC command in a  message
  10162.     text which isn't allowed (not  in the DISP_CMDS of the  user's profile),
  10163.     Magnum  will  simply  display  the  MILC  command when someone reads the
  10164.     message as though it were normal text but it won't process it.
  10165.  
  10166.     Other fields which may need additional explanation:
  10167.  
  10168.     The REUSE  and TYPE  fields appear  near the  top of  the screen  (after
  10169.     STREET1)  and  the  FILEGRP  and  MSGGRP  appear  near the bottom (after
  10170.     FILE_L_AREAS and MSG_R_AREAS).  Note that FILEGRP, MSGGRP, FILEBASE  and
  10171.  
  10172.  
  10173.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10174.  
  10175.  
  10176.  
  10177.     Using Magnum BBS as a USER                                    Page  7-31
  10178.     The SYSOP MENU
  10179.  
  10180.  
  10181.     MSGBASE  apply  to  those  sysops  using  the  extended  FileBase and/or
  10182.     Extended MsgBase modules.  Note that TYPE applies to those sysops  using
  10183.     the Magnum Remote Mail option.  TYPE can be one of U (user) or M (mail).
  10184.     REUSE can be one of  Y (yes) or N (no)  - If N (no), this  record is NOT
  10185.     reusable in the event you delete  this user.  The RMAIL field  indicates
  10186.     whether  the  user  can  enter  a  message  to a user on a remote Magnum
  10187.     system.  The  default is NOT  to have this  capability, however you  may
  10188.     change this default  for any/all users  either individually in  the User
  10189.     Database area of the  Sysop Menu, or in  bulk with a .MEX  program.  For
  10190.     those running the extended file or msgbase modules, refer to the chpater
  10191.     on Extended Filebase and Extended MsgBase modules.
  10192.  
  10193.                         SYSMENU_FILE: (menu selection F)
  10194.  
  10195.     This menu selection  will enter the  Files database.   First, you'll see
  10196.     the following prompt:
  10197.  
  10198.        B)ase, F)ile Utils, A)dd Files (B,F,A) (blank quits) =>
  10199.  
  10200.     By simply pressing ENTER (without entering a response), you'll quit this
  10201.     section and go back to the Sysop Menu.  By choosing B, you'll be allowed
  10202.     to change the FileBase (applicable only if using the optional  'Extended
  10203.     FileBase' module).
  10204.  
  10205.     By Choosing F, the following prompt will appear:
  10206.  
  10207.        Search by A)rea or F)ilename (A,F, blank quits) =>
  10208.  
  10209.     By choosing A, you'll  be prompted for a  file area (A-Z) in which to
  10210.     add a file from. The file must already exist in that file area!
  10211.  
  10212.     By choosing F, the following prompt will display:
  10213.  
  10214.        Search by A)rea, F)ilename or U)ser (A,F,U - blank quits) =>
  10215.  
  10216.     If you choose A)rea, then the records matching that file area will
  10217.     display in sequential order, starting with the first one it finds.
  10218.     You'll be given a chance to modify any of the fields in any of the
  10219.     records while it's being displayed, or you can go on to the next record
  10220.     matching the file area, or quit.
  10221.  
  10222.     If you choose F)ilename, the record of the filename will appear.
  10223.  
  10224.     If you choose U)ser, then all files uploaded by that user (filenames
  10225.     only), will be displayed.
  10226.  
  10227.     When a file record is displayed, it might look like the following:
  10228.  
  10229.        FileName: "MAGCOM.ZIP" - Area: "E" - Public
  10230.               Expiration Date: None
  10231.          Detailed Description: Does not exist
  10232.        1-line Description:
  10233.        MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  10234.  
  10235.  
  10236.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10237.  
  10238.  
  10239.  
  10240.     Page  7-32                                    Using Magnum BBS as a USER
  10241.                                                               The SYSOP MENU
  10242.  
  10243.  
  10244.  
  10245.        0) Quit
  10246.        1) Delete
  10247.        2) Change Area (E)
  10248.        3) Make Private (password protect)
  10249.        4) Change FileName (MAGCOM.ZIP) [#204]
  10250.        5) Change Expiration Date ()
  10251.        6) Change Brief (1-line) description
  10252.        7) Add Detailed Description
  10253.        8) Upload method (G)
  10254.        9) File Date (01/01/1990)
  10255.        10) File Time (06:41)
  10256.        11) Last Accessed (01/08/1990)
  10257.        12) ID# of uploader (/0)
  10258.        13) Delete detailed description (NonApplicable)
  10259.        14) Size of file (80896)
  10260.        15) Number of downloads (67)
  10261.        16) FileBase (000)          17) View ZIP
  10262.  
  10263.        Choice (0-17) =>
  10264.  
  10265.     Note that choices  0-7 are identical  to the FILEMENU_CHANGE  (file menu
  10266.     option C) except that choices 8-17  have been added for the rest  of the
  10267.     record to be available  for changes by the  sysop.  All parameters  here
  10268.     are self explanatory.  When you quit (0) this selection, you will return
  10269.     to the previous prompt - if you're searching by area, you'll be prompted
  10270.     as to whether you wish to see the record of the next file in the area or
  10271.     if you'd like to quit.
  10272.  
  10273.     The other selection of the Files  Database section of the sysop menu  is
  10274.     the A)dd files selection.  Choosing this option first requires that  the
  10275.     file you are about to add has been placed in the directory matching  the
  10276.     file area you wish to add the file  to.  In other words, if file area  F
  10277.     is defined as "E:\MAGNUM\NEWFILES", then  the file you are about  to add
  10278.     to the database should already be placed in this directory.  By choosing
  10279.     the A)dd files selection, you will be prompted for the name of the  file
  10280.     you are about to add, followed by  a prompt for the area the file  is to
  10281.     be found in, and a description of the file.
  10282.  
  10283.                       SYSMENU_ACTIVITY: (menu selection A)
  10284.  
  10285.     This menu  selection is  actually two  different functions  in one.  The
  10286.     main purpose  for this  function is  to view  the activity  logs for the
  10287.     individual nodes.  The prompt  appearing when you select this  option is
  10288.     as follows (we're assuming 4-node version):
  10289.  
  10290.        Activity for which node (1-4) =>
  10291.  
  10292.     By supplying  a node  number, the  log for  that node  will be displayed
  10293.     (BACKWARDS) in reverse chronological order.
  10294.  
  10295.     If you  anser the  prompt with  a question  mark (?)  followed by a node
  10296.     number, for example:
  10297.  
  10298.  
  10299.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10300.  
  10301.  
  10302.  
  10303.     Using Magnum BBS as a USER                                    Page  7-33
  10304.     The SYSOP MENU
  10305.  
  10306.  
  10307.  
  10308.        Activity for which node (1-4) => ?1
  10309.  
  10310.     you will be placed in "Remote Snoop" mode.  In other words, you will  be
  10311.     able to see everything the user on that node sees.  This is intended for
  10312.     sysops who  are logged  on remotely  and wish  to "snoop"  on someone as
  10313.     though they were sitting at the master console and typed "1 switch".  To
  10314.     end "remote snoop", simply press <Ctrl-X>.
  10315.  
  10316.     Important  notes  about  "remote  snoop":    Characters  are placed in a
  10317.     circular buffer of 512 bytes.  If you are logged on at a lower baud rate
  10318.     than  the  user  you  are  "snooping"  on,  you  may  experience loss of
  10319.     characters  in  this  mode.    Also,  if  the  user is performing a file
  10320.     transfer (upload  or download),  the usual  display of  "Bytes Sent"  or
  10321.     "Bytes Received" will not  be visible!  Do  not be alarmed at  this.  Do
  10322.     not try to use this "remote snoop" facility while logged on locally -  a
  10323.     decrease in priority is issued to the local node and you will lose  MANY
  10324.     characters of snoop display.
  10325.  
  10326.                        SYSMENU_REMOTE: (menu selection R)
  10327.  
  10328.     This menu selection will work only for sysops who've logged on  remotely
  10329.     (will not work if logged on locally via the console).  This area of  the
  10330.     BBS emulates the  MBBS Sysop console.   You can  issue ANY MBBS  command
  10331.     that you'd ordinarily have to be sitting at the Sysop console to  issue.
  10332.     You can make any node(s) active, inactive, schedule a node for shutdown,
  10333.     force a user  off, etc.   The only thing  you can't do  is issue the  "*
  10334.     logon" command (it will  be rejected).  When  you first enter this  menu
  10335.     selection, Magnum will send the "MAGNUM SYSOP CONSOLE Display Screen" to
  10336.     your remote  terminal, and  prompt you  for a  MBBS command.   After any
  10337.     command you enter,  it will be  processed and the  "MAGNUM SYSOP CONSOLE
  10338.     Display Screen"  will be  redisplayed on  your remote  terminal.  To end
  10339.     this "remote  sysop console"  mode, simply  ENTER a  null command  (just
  10340.     press ENTER without typing anything at the command prompt).
  10341.     NOTE: "TEST mode" is not possible via this option - it is available only
  10342.           at the sysop's console (keyboard) on the machine running Magnum.
  10343.  
  10344.                        SYSMENU_STATS: (menu selection S)
  10345.  
  10346.     This menu selection  displays the status  of the databases.   NOTE:   BY
  10347.     CHOOSING THIS  MENU SELECTION,  ALL EXPIRED  FILES AND  MESSAGES WILL BE
  10348.     PHYSICALLY DELETED, NOT JUST MARKED FOR DELETION!  ANY FILES OR MESSAGES
  10349.     MARKED FOR DELETION WILL BE PHYSICALLY DELETED!
  10350.  
  10351.     By choosing  this menu  selection, you'll  see a  display similar to the
  10352.     following:
  10353.  
  10354.  
  10355.  
  10356.  
  10357.  
  10358.  
  10359.  
  10360.  
  10361.  
  10362.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10363.  
  10364.  
  10365.  
  10366.     Page  7-34                                    Using Magnum BBS as a USER
  10367.                                                               The SYSOP MENU
  10368.  
  10369.  
  10370.             MAGNUM OS/2 BBS - (C)Copyright 1989,1992 Gilmore Systems
  10371.  
  10372.                       # Records  =  Active  +  Deleted
  10373.        USER DATABASE:   000647      000647     000000   (unpackable)
  10374.        FILE DATABASE:   000432      000414     000018
  10375.         MSG DATABASE:   001407      001391     000016
  10376.  
  10377.        [F]=Pack File Database, [M]=Pack Message Database, [Q]uit
  10378.  
  10379.        Choice (F,M,Q) =>
  10380.  
  10381.     Even though physical deletions are performed, an entry in the  databases
  10382.     (File and Message databases) still  exist for the deleted records.   You
  10383.     must perform a Pack  of the databases to  recreate the databases -  this
  10384.     will eliminate the deleted records and free up some space.
  10385.  
  10386.     IMPORTANT: WHEN PACKING DATABASES, MAGNUM WILL CAUSE ALL SESSIONS (OTHER
  10387.                THAN YOURS) TO TERMINATE. ALL NODES (EXCEPT YOURS) WILL ALSO
  10388.                BECOME INACTIVE. THIS APPLIES TO *ALL* SESSIONS AND NODES
  10389.                REGARDLESS OF WHERE THEY'RE LOCATED ON YOUR LAN. MAGNUM WILL
  10390.                GIVE YOU THE COURTESY OF PROMPTING YOU AS TO WHETHER YOU WISH
  10391.                TO CONTINUE WITH THE 'PACKING' BEFORE IT DOES ANYTHING - THIS
  10392.                WILL ALLOW YOU TO CHANGE YOUR MIND.
  10393.  
  10394.                THERE MUST BE ENOUGH FREE DISK SPACE TO HOLD AN EXTRA COPY OF
  10395.                THE DATABASE(s) YOU ARE PACKING!
  10396.  
  10397.                IT IS A GOOD IDEA TO MAKE A BACKUP COPY OF THE DATABASES
  10398.                PRIOR TO PACKING THEM.
  10399.  
  10400.     While packing  message or  file databases,  the system  displays + and -
  10401.     characters on the screen.  A '+' character displays for every  processed
  10402.     record, a '-' character for every record it deletes.  At pack completion
  10403.     status is redisplayed, and the number of records in the database  should
  10404.     should match the number of active records (deleted records should be 0).
  10405.  
  10406.     It's necessary  to pack  the databases  periodically.   Depending on how
  10407.     active your BBS is, we found that once per week suits most busy boards.
  10408.  
  10409.     NOTE: From time to time the number of records reported in the USER
  10410.           database will not match the number of actual records in the user
  10411.           database as reported by the "[V]iew System Statistics" from the
  10412.           main menu. This is normal, and eventually the two will match. The
  10413.           number of records in this option is derived from the number of
  10414.           records in the USER.KEY file rather than in the USER.DAT file.
  10415.           The USER.KEY file will ocassionally contain more records than the
  10416.           USER.DAT file due to aborted NEW USER logons.
  10417.  
  10418.                         SYSMENU_HELP: (menu selection ?)
  10419.  
  10420.     This menu  selection displays  the help  file SYSHELP.BBS  (in the  HELP
  10421.     directory) if  it exists,  otherwise a  "Help not  available" message is
  10422.     displayed.   As of  this writing,  a help  file is  not included for the
  10423.  
  10424.  
  10425.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10426.  
  10427.  
  10428.  
  10429.     Using Magnum BBS as a USER                                    Page  7-35
  10430.     The SYSOP MENU
  10431.  
  10432.  
  10433.     Sysop  menu,  but  you  can  feel  free  to write your own should you be
  10434.     inclined to do so.
  10435.  
  10436.                       SYSMENU_GOODBYE: (menu selection G)
  10437.  
  10438.     This menu selection  is identical to  the GOODBYE function  on any other
  10439.     menu.   It prompts  the user  as to  whether they're  sure they  want to
  10440.     disconnect, and  whether they'd  like to  leave a  comment to  the Sysop
  10441.     prior to  disconnecting (see  the VERIFY_GOODBYE  option in  the STARTUP
  10442.     file).
  10443.  
  10444.                         SYSMENU_OPT1: (menu selection 1)
  10445.                         SYSMENU_OPT2: (menu selection 2)
  10446.  
  10447.     These menu selections  are normally turned  off by setting  the security
  10448.     level to that of  one higher than any  of your users unless  you plan on
  10449.     using them.  When selected, Magnum will display the file SYSOPT1.BBS  or
  10450.     SYSOPT2.BBS from your DISPLAY DIRectory  if it exists.  These  files are
  10451.     created by you in order to supply 'hooks' to external programs in  areas
  10452.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  10453.     these files.
  10454.  
  10455.  
  10456.  
  10457.  
  10458.  
  10459.  
  10460.  
  10461.  
  10462.  
  10463.  
  10464.  
  10465.  
  10466.  
  10467.  
  10468.  
  10469.  
  10470.  
  10471.  
  10472.  
  10473.  
  10474.  
  10475.  
  10476.  
  10477.  
  10478.  
  10479.  
  10480.  
  10481.  
  10482.  
  10483.  
  10484.  
  10485.  
  10486.  
  10487.  
  10488.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10489.  
  10490.  
  10491.  
  10492.     Page  7-36                                    Using Magnum BBS as a USER
  10493.                                                                 The RJE MENU
  10494.  
  10495.  
  10496.  
  10497.     The RJE MENU currently has 8 menu selections available:
  10498.  
  10499.                         RJEMENU_QUIT: (menu selection Q)
  10500.  
  10501.     Like any other QUIT MENU command, selecting this menu option will return
  10502.     the user to the main menu.
  10503.  
  10504.                        RJEMENU_STATUS: (menu selection S)
  10505.  
  10506.     Choosing this menu selection will display the status of any RJE job(s)
  10507.     you started. First, you'll be prompted for a date which Magnum will use
  10508.     to start the search from. After you've responded to this prompt, the
  10509.     display might look similar to the following:
  10510.  
  10511.                          (Seconds)          (S e c o n d s)
  10512.       RJE_NAME START_DATE START  STOP_DATE  STOP   TTL_TIME  STATUS C  L PID
  10513.     50F0A12935 05/15/1990 12935 05/15/1990 12988         63    done 1 25 918
  10514.     50F0A18043 05/15/1990 18043                             running 1 25 926
  10515.  
  10516.     The above example display shows the RJE_NAME (job name Magnum assigned),
  10517.     the date started, the time started  (in seconds from midnight).  If  the
  10518.     job is still running, the  STOP_DATE and STOP time will  be meaningless,
  10519.     otherwise they'll be  filled in.   The STATUS tells  whether the job  is
  10520.     still running or whether its complete.  C stands for priority CLASS, and
  10521.     L stands for priority  LEVEL within the priority  class.  PID will  only
  10522.     appear if the Sysop is listing  the status of jobs, and will  not appear
  10523.     for normal users.   PID is the Process  IDentification of the job.   See
  10524.     the explanation of the @E command for further information.
  10525.  
  10526.                         RJEMENU_LIST: (menu selection L)
  10527.  
  10528.     When a  user selects  this option,  Magnum will  display the RJELIST.BBS
  10529.     file (from your RJE DIRectory) if it exists.  See our sample RJELIST.BBS
  10530.     file (in  your RJE  DIRectory for  an example  of how  to put  this file
  10531.     together).    Upon  exit  of  displaying  this file, Magnum will run the
  10532.     program contained  in MILC  variable @Z0  with the  parms in  @Z1.  It's
  10533.     suggested that you use the @E1 command to run RJE programs instead,  and
  10534.     blank out the @Z0 variable prior to exiting this file (ie:  @Z0="");
  10535.  
  10536.                        RJEMENU_DELETE: (menu selection K)
  10537.  
  10538.     Choosing  this  option  will  result  in  Magnum  prompting  you for the
  10539.     10-character jobname of the  RJE job you wish  to kill (terminate).   If
  10540.     the job is still active (running), Magnum will terminate it.
  10541.  
  10542.                        RJEMENU_FILES: (menu selection C)
  10543.  
  10544.     This menu selection will  list the completed RJE  jobs ready for you  to
  10545.     download, giving filename, creation date, expiration date, and size.
  10546.  
  10547.                        RJEMENU_SYSOP: (menu selection X)
  10548.  
  10549.  
  10550.  
  10551.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10552.  
  10553.  
  10554.  
  10555.     Using Magnum BBS as a USER                                    Page  7-37
  10556.     The RJE MENU
  10557.  
  10558.  
  10559.     This menu selection will allow the Sysop to perform the L and C  options
  10560.     above but will be able to supply a user id instead of his/her own.   The
  10561.     L option equivalent will also  show extended information about the  job,
  10562.     such as the program name, and the parameters which were used to pass  to
  10563.     the program.
  10564.  
  10565.                         RJEMENU_HELP: (menu selection ?)
  10566.  
  10567.     This menu  selection will  display the  RJEHELP.BBS file  from the  HELP
  10568.     DIRectory.
  10569.  
  10570.                       RJEMENU_GOODBYE: (menu selection G)
  10571.  
  10572.     This menu selection prompts the user  as to whether they really want  to
  10573.     end their session or not.  If Yes, they are prompted as to whether  they
  10574.     wish to leave  a Comment to  the Sysop prior  to disconnecting (See  the
  10575.     VERIFY_GOODBYE option in the STARTUP file).
  10576.  
  10577.                         RJEMENU_OPT1: (menu selection 1)
  10578.                         RJEMENU_OPT2: (menu selection 2)
  10579.  
  10580.     These menu selections  are normally turned  off by setting  the security
  10581.     level to that of  one higher than any  of your users unless  you plan on
  10582.     using them.  When selected, Magnum will display the file RJEOPT1.BBS  or
  10583.     RJEOPT2.BBS from your DISPLAY DIRectory  if it exists.  These  files are
  10584.     created by you in order to supply 'hooks' to external programs in  areas
  10585.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  10586.     these files.
  10587.  
  10588.     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  10589.  
  10590.     This concludes chapter 7 "Using Magnum BBS as a User".  After using  the
  10591.     BBS as a Sysop for a while, you'll see why we chose to write the  system
  10592.     as a text application rather than  as a PM application.  Because  it's a
  10593.     text application, you can log on to your BBS remotely as Sysop from  any
  10594.     terminal regardless of operating  system and perform any  sysop function
  10595.     you'd ordinarily have  to be at  the Sysop console  to do.   You'll find
  10596.     Magnum BBS to  be a powerful,  full-featured BBS when  compared to other
  10597.     BBS systems.  The remaining  chapters in this manual deal  with advanced
  10598.     Sysop  functions.    It  is  suggested  that  you  become  familiar  and
  10599.     comfortable with  everything covered  so far  before attempting  to deal
  10600.     with the following chapters.
  10601.  
  10602.  
  10603.  
  10604.  
  10605.  
  10606.  
  10607.  
  10608.  
  10609.  
  10610.  
  10611.  
  10612.  
  10613.  
  10614.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10615.  
  10616.  
  10617.  
  10618.  
  10619.  
  10620.  
  10621.  
  10622.  
  10623.  
  10624.  
  10625.  
  10626.  
  10627.  
  10628.  
  10629.  
  10630.  
  10631.  
  10632.  
  10633.  
  10634.  
  10635.  
  10636.  
  10637.  
  10638.  
  10639.  
  10640.  
  10641.  
  10642.  
  10643.  
  10644.  
  10645.                          This Page Intentionally Blank
  10646.  
  10647.  
  10648.  
  10649.     Magnum's ACE (Automatic Command Execution) Event Handler       Page  8-1
  10650.  
  10651.  
  10652.  
  10653.     Incorporated into Magnum BBS, is a powerful event handler known as  ACE.
  10654.     ACE  is  an  acronym  for  "Automatic  Command Execution" because that's
  10655.     exactly what it does - automatically executes commands at  predetermined
  10656.     days and times.
  10657.  
  10658.     When you first start Magnum  BBS by starting the MBBS.EXE  program, part
  10659.     of the MBBS.EXE startup routines look for a file by the name of MBBS.ACE
  10660.     in the PROGRAM directory (the same directory that MBBS.EXE is found in).
  10661.     This is  why it's  important that  you make  the current  directory your
  10662.     PROGRAM directory  prior to  starting MBBS.EXE.   If  MBBS.EXE finds the
  10663.     file MBBS.ACE, it reads the file  and stores or queues any ACE  commands
  10664.     it finds within the file and  issues a message similar "xx ACE  commands
  10665.     queued".
  10666.  
  10667.     ACE commands are of two types:  stored (queued), and immediate.   Stored
  10668.     or  queued  commands  are  executed  on  predetermined day(s) and times.
  10669.     Immediate commands are those which are executed right away.
  10670.  
  10671.     When MBBS.EXE starts up, it will  attempt to read the file MBBS.ACE  (if
  10672.     it exists),  and store  the appropriate  ACE commands  within for  later
  10673.     execution.  MBBS.ACE is expected to be found in the PROGRAM directory  -
  10674.     the same directory MBBS.EXE is in.
  10675.  
  10676.     MBBS.ACE is a normal text file  which you create with your text  editor.
  10677.     Blank lines are  ignored, and lines  starting with the  exclamation mark
  10678.     character (!) will be treated as comments (ignored).
  10679.  
  10680.     Since blank lines and lines starting with the ! character are ignored by
  10681.     MBBS, now would be  a good time to  introduce you to an  actual MBBS.ACE
  10682.     file.  From this point on, the rest of the documentation for ACE will be
  10683.     in the format expected to be found in the MBBS.ACE file (beginning  with
  10684.     the - - -  CUT - - -  line, and ending with  the - - -  CUT - - -  line.
  10685.     Most of the following are comments):
  10686.  
  10687.     ! - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT
  10688.  
  10689.     ! To use MBBS automated commands, you need to create an MBBS command
  10690.     ! file. To accomplish this, you'll need a text editor to create the file
  10691.     !
  10692.     ! The file  should  have  a  name  of  MBBS.ACE  (where  ACE is an
  10693.     ! acronym for Automatic Command Execution). The MBBS.ACE file should be
  10694.     ! placed in your PROGRAM directory (the same directory as MBBS.EXE
  10695.     ! resides in).
  10696.  
  10697.     ! Here is the Syntax of an MBBS ACE command:
  10698.  
  10699.     ! CCCCCCC,HH:MM,SSSSSSSSSSSS[,wwww]
  10700.     ! ^       ^     ^
  10701.     ! |       |     |
  10702.     ! |       |     |
  10703.     ! |       |     |_Command (see below)
  10704.     ! |       |
  10705.     ! |       |_Time (hh:mm) in 24-hour format (range is 00:00 to 23:59)
  10706.  
  10707.  
  10708.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10709.  
  10710.  
  10711.  
  10712.     Page  8-2       Magnum's ACE (Automatic Command Execution) Event Handler
  10713.  
  10714.  
  10715.     ! |
  10716.     ! |_Days applicable (0=Sun,1=Mon,...6=Sat)  ie: 12345 applies to Mon-Fri
  10717.  
  10718.     ! Text lines starting with the '!' character are comments (ignored)
  10719.  
  10720.     ! MBBS has a physical limit of 100 command lines. This means that the
  10721.     ! MBBS.ACE file must not contain more than 100 commands. Blank lines and
  10722.     ! comments (lines starting with the ! character) are not commands and
  10723.     ! are not counted in the 100 command limit. "Immediate Commands"
  10724.     ! (commands starting with the * character described later) are not
  10725.     ! counted in the 100 command limit either.
  10726.  
  10727.     ! Description of Command:
  10728.  
  10729.     ! The Command SSSSSSSSSSSS can be any Magnum MBBS command just as  you'd
  10730.     ! enter on the MBBS  command line beginning with  the node# or *,  OR it
  10731.     ! can be any enclosed in double quotes (" ") if it's a command you  wish
  10732.     ! to have OS/2 run  instead.  If you're  using OS/2 commands (in  double
  10733.     ! quotes), an additional parameter must follow - WAIT, NOWAIT or DETACH.
  10734.     ! Please realize the consequences of the WAIT parameter:  MBBS comes  to
  10735.     ! a grinding HALT (won't answer phone, won't accept commands, etc) until
  10736.     ! the process  it's WAITing  for finishes.   With  the NOWAIT  or DETACH
  10737.     ! parm, the process runs in the background while MBBS continues to  run.
  10738.     ! If  the  process  you're   starting  (in  double  quotes)   writes  to
  10739.     ! stdout/stderr (the screen/console), you should redirect it's output to
  10740.     ! the nul device,  or to files  (redirection is accomplished  with the <
  10741.     ! character and  the >  characters.   Example MBBS  commands will follow
  10742.     ! later.
  10743.  
  10744.     ! NOTE: MBBS.EXE can read (and store) a maximum of 100 ACE commands.
  10745.     !       With the Alternate Syntax described below (immediate execution
  10746.     !       rather than stored for later execution), immediate ACE commands
  10747.     !       are NOT counted as part of the 100 maximum limit because they
  10748.     !       are executed immediately (as soon as they're read) and then
  10749.     !       discarded (not stored). Also note that the MBBS command (entered
  10750.     !       manually at the "Command ==> " prompt) of "* ACE INIT" will
  10751.     !       re-read the MBBS.ACE command file, overwriting all previously
  10752.     !       stored ACE commands with the ACE commands just read with one
  10753.     !       exception - Immediate commands (those starting with the * char)
  10754.     !       will be ignored - immediate commands will ONLY be processed when
  10755.     !       the MBBS program is initially started. This insures that dual
  10756.     !       copies of the same program(s) are not running unintentionally.
  10757.     !       Also, another MBBS command (entered manually at the
  10758.     !       "Command ==> " prompt) of "* SSSSSSS,wwww" has the same syntax
  10759.     !       as the ACE "immediate" command except that no comma follows
  10760.     !       the * char.
  10761.     !
  10762.  
  10763.     !
  10764.     ! Alternate Syntax:
  10765.     !
  10766.     !              *,SSSSSSSSSS[,wwww]
  10767.     !
  10768.     ! When used this way, the command executes immediately. When MBBS.EXE
  10769.  
  10770.  
  10771.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10772.  
  10773.  
  10774.  
  10775.     Magnum's ACE (Automatic Command Execution) Event Handler       Page  8-3
  10776.  
  10777.  
  10778.     ! starts, it reads the commands in the MBBS.ACE file, when a command
  10779.     ! starts with the * character, it is executed immediately!
  10780.     !
  10781.     ! Internal MBBS commands may be entered exactly as you'd enter them at
  10782.     ! the MBBS command prompt (Command ==> ). External commands -
  10783.     ! programs, .CMD files, or any other command you'd type at the OS/2
  10784.     ! command line are to be enclosed within double quotes immediately
  10785.     ! followed by a comma (,) and one of the keywords: WAIT, NOWAIT or
  10786.     ! DETACH, where these keywords are defined as:
  10787.     !
  10788.     !    WAIT   - MBBS stops what it's doing and starts the external command
  10789.     !             or program. MBBS will NOT resume until the external
  10790.     !             command finishes. Programs started in this fashion may
  10791.     !             use the console for input/output operations (stdin,
  10792.     !             stdout, stderr).
  10793.     !
  10794.     !    NOWAIT - MBBS starts the external command or program and
  10795.     !             immediately resumes normal BBS operation while the
  10796.     !             external command or program executes concurrently. NOTE:
  10797.     !             Programs started in this fashion must NOT perform any
  10798.     !             console input/output operations. You may still run
  10799.     !             programs that use console input/output operations by
  10800.     !             redirecting their output to the NUL device, and
  10801.     !             redirecting their input to a file. For example, the
  10802.     !             command: "mbbsexec.exe 1>nul 2>nul" redirects all program
  10803.     !             output to the NUL device (a dummy file). For those of you
  10804.     !             unfamiliar with the redirection of output in this fashion,
  10805.     !             OS/2 predifines the first three file handles of any
  10806.     !             program as 0 (stdin), 1 (stdout), and 2 (stderr). By
  10807.     !             rerouting output with the statements "1>nul" and "2>nul",
  10808.     !             you ensure that both stdout and stderr are rerouted to
  10809.     !             the NUL device. Unlike DOS where ">nul" redirected both
  10810.     !             stdout and stderr to the NUL device, the same ">nul"
  10811.     !             statement in OS/2 only redirects stdout to the NUL device.
  10812.     !             It is important that NO output be written to the screen
  10813.     !             when a program is started with the NOWAIT option, and that
  10814.     !             no input is expected from the keyboard.
  10815.     !
  10816.     !    DETACH - Similar to the NOWAIT option above, but with the following
  10817.     !             exceptions: The program will be started as a detached
  10818.     !             process which runs in the background, and concurrently
  10819.     !             with other processes in the system. Since the program is
  10820.     !             running as a detached process, it will continue to run
  10821.     !             until it finishes, even if MBBS.EXE is terminated for any
  10822.     !             reason. Console I/O operations are permitted ONLY via
  10823.     !             POPUP windows.
  10824.     !
  10825.  
  10826.     !--------------------------
  10827.     !
  10828.     ! On Startup run program abc.exe and xyz.exe, make Node2 "announce only"
  10829.     !
  10830.     !--------------------------
  10831.  
  10832.  
  10833.  
  10834.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10835.  
  10836.  
  10837.  
  10838.     Page  8-4       Magnum's ACE (Automatic Command Execution) Event Handler
  10839.  
  10840.  
  10841.     *,"abc.exe 1>nul 2>nul",wait
  10842.     *,"xyz.exe 1>nul 2>nul",detach
  10843.     *,2 announce
  10844.  
  10845.     !--------------------------
  10846.     !
  10847.     ! On Mon thru Fri, Shutdown Node3 at 09:00 and - Activate again at 17:00
  10848.     !
  10849.     !--------------------------
  10850.  
  10851.     12345,08:00,3 shutdown 09:00
  10852.     12345,17:00,3 Active
  10853.  
  10854.     !--------------------------
  10855.     !
  10856.     ! Prepare for System Maintenance at 02:00 every morning
  10857.     !
  10858.     ! Note that node 4 (console) is left active, otherwise, if all nodes
  10859.     ! were shutdown, MBBS would terminate.
  10860.     !
  10861.     ! Note that 02:01 is supplied for the time to run mbbsexec.exe, and for
  10862.     ! the commands following it to reactivate nodes 1-3. Even if
  10863.     ! mbbsexec.exe takes 20 minutes to complete, all commands scheduled for
  10864.     ! 02:01 will be processed in order. Since the WAIT parameter is
  10865.     ! specified, the reactivation of nodes 1-3 will not take place until
  10866.     ! mbbsexec.exe finsihes. It is also important to know that had the
  10867.     ! reactivation commands been scheduled for 02:02 (or 02:05) for example,
  10868.     ! and mbbsexec.exe took 10 minutes to complete, the time would be 02:10
  10869.     ! upon completion and any commands scheduled from 02:01 to 02:09
  10870.     ! inclusive would not be processed. Therefore, whenever you execute a
  10871.     ! program with the WAIT parameter, you should know how long the program
  10872.     ! will take to complete for obvious reasons. However, by supplying the
  10873.     ! reactivation commands (ie: 0123456,02:01,1 active) as in the sample
  10874.     ! below with the same time (02:01) as the program, you insure that the
  10875.     ! commands will be processed upon completion of the mbbsexec.exe
  10876.     ! program. The exception to this is any command(s) following the
  10877.     ! "shutdown" ace command. Note below how commands following "shutdown"
  10878.     ! are issued AFTER the scheduled shutdown time.
  10879.     !
  10880.     !--------------------------
  10881.  
  10882.     0123456,01:00,1 shutdown 02:00
  10883.     0123456,01:00,2 shutdown 02:00
  10884.     0123456,01:00,3 shutdown 02:00
  10885.     0123456,02:01,"mbbsexec.exe maintain",WAIT
  10886.     0123456,02:01,1 active
  10887.     0123456,02:01,2 active
  10888.     0123456,02:01,3 active
  10889.  
  10890.     !---------------------------------------------------------------------
  10891.  
  10892.  
  10893.     ! - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT
  10894.  
  10895.  
  10896.  
  10897.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10898.  
  10899.  
  10900.  
  10901.     Magnum's ACE (Automatic Command Execution) Event Handler       Page  8-5
  10902.  
  10903.  
  10904.     This has been an explanation of  the creation, syntax and usage of  an
  10905.     MBBS.ACE  command  file.    When  you  run  the  MBBS.EXE program, the
  10906.     MBBS.ACE  file  will  be  read  and  checked  for  syntax errors.  ACE
  10907.     commands  will  be  stored  (queued)  for  later execution.  Immediate
  10908.     commands will be processed right away.
  10909.  
  10910.     All executed ACE commands are logged to file ACE.LOG (in your  PROGRAM
  10911.     directory) at the time of execution.
  10912.  
  10913.  
  10914.  
  10915.  
  10916.  
  10917.  
  10918.  
  10919.  
  10920.  
  10921.  
  10922.  
  10923.  
  10924.  
  10925.  
  10926.  
  10927.  
  10928.  
  10929.  
  10930.  
  10931.  
  10932.  
  10933.  
  10934.  
  10935.  
  10936.  
  10937.  
  10938.  
  10939.  
  10940.  
  10941.  
  10942.  
  10943.  
  10944.  
  10945.  
  10946.  
  10947.  
  10948.  
  10949.  
  10950.  
  10951.  
  10952.  
  10953.  
  10954.  
  10955.  
  10956.  
  10957.  
  10958.  
  10959.  
  10960.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  10961.  
  10962.  
  10963.  
  10964.  
  10965.  
  10966.  
  10967.  
  10968.  
  10969.  
  10970.  
  10971.  
  10972.  
  10973.  
  10974.  
  10975.  
  10976.  
  10977.  
  10978.  
  10979.  
  10980.  
  10981.  
  10982.  
  10983.  
  10984.  
  10985.  
  10986.  
  10987.  
  10988.  
  10989.  
  10990.  
  10991.                          This Page Intentionally Blank
  10992.  
  10993.  
  10994.  
  10995.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-1
  10996.  
  10997.  
  10998.                      MBBSEXEC Utility for "Magnum OS/2 BBS"
  10999.           (C)Copyright 1989,1992 Gilmore Systems - All rights reserved
  11000.  
  11001.     This chapter explains the use of MBBSEXEC.EXE,  a Sysop utility  program
  11002.     for the management of the Magnum BBS database files USER.DAT,  USER.KEY,
  11003.     FILE.DAT, MSG.DAT, RJE.DAT, and UTILIZ.DAT.
  11004.  
  11005.     As a Sysop of  a Magnum OS/2 BBS,  you have probably discovered  a great
  11006.     deal of routine things which you'd  like to do with the contents  of the
  11007.     records and fields  within Magnum's databases.   Some examples  of these
  11008.     routine tasks which immediately come to mind are:
  11009.  
  11010.        - Delete all users whose last call was 180 days ago or greater
  11011.        - Delete all messages older than 90 days
  11012.        - Delete all files older than 365 days
  11013.        - Upgrade all users who've entered 2 or more public messages
  11014.        - Lower the security level of all users who's memodate has expired
  11015.        - Add an expiration date to all messages or files in a specific area
  11016.        - Increase time limit for users who've uploaded 10 or more files
  11017.        - Delete all files having less than 10 downloads in the past 60 days
  11018.        - List all users with an interest in music (or whatever you choose)
  11019.        - Upgrade Users ONLINE based on the results of a questionairre.
  11020.        - Generate Form Letters and/or Mailing Labels to all users matching
  11021.           specific criteria.
  11022.        - Generate reports showing what percentage of your users fall into
  11023.           specific criteria.
  11024.  
  11025.     This is just a very small example of what can be done with the  MBBSEXEC
  11026.     program.   There is  virtually no  limit on  what you  can do - MBBSEXEC
  11027.     simplifies all of your database management needs.
  11028.  
  11029.     MBBSEXEC is an interpreter  (like BASIC) which interprets  your programs
  11030.     (.MEX files)  and performs  the programming  instructions within.   This
  11031.     powerful interpreter is  similar to the  C programming language  but has
  11032.     slightly stricter rules as far as  opening and closing  braces ( '{' and
  11033.     '}' characters).
  11034.  
  11035.     MBBSEXEC will be covered in two sections of this chapter.  In the  first
  11036.     section  we'll  start  with  a  presentation  of  MBBSEXEC as a 'simple'
  11037.     programming  language.    This  will  provide  those  with  little to no
  11038.     programming experience the information they need in order to write their
  11039.     own  .MEX  programs.    By  using  MBBSEXEC  as  a  'simple' programming
  11040.     language, all of your Magnum database management needs can be taken care
  11041.     of.    In  the  second  section  (the 'Advanced' section), we'll present
  11042.     advanced  techniques  oriented  more  towards  those  with   programming
  11043.     experience, yet keeping it simple enough to understand (where  possible)
  11044.     such that those  new to programming  can apply the  advanced features to
  11045.     their .MEX programs.
  11046.  
  11047.     An MBBSEXEC  program consists  of a  regular ASCII  text file  which you
  11048.     create with  your favorite  text editor.   When  you create  an MBBSEXEC
  11049.     program with your text  editor, you'll need to  save it with a  filename
  11050.     extension of ".MEX" (MbbsEXecutable).  MBBSEXEC reads your .MEX file and
  11051.     processes the statements  within.  In  other words, if  you've created a
  11052.  
  11053.  
  11054.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11055.  
  11056.  
  11057.  
  11058.     Page  9-2                 The MBBSEXEC Sysop Maintenance Utility Program
  11059.  
  11060.  
  11061.     text file to  list all users  with an interest  in music, your  MBBSEXEC
  11062.     input file  would probably  have a  name of  MUSIC.MEX, and  you'd start
  11063.     MBBSEXEC with:
  11064.  
  11065.          MBBSEXEC MUSIC
  11066.  
  11067.     MBBSEXEC assumes an  extension of .MEX  although if you  supply your own
  11068.     extension MBBSEXEC will use that filename instead.
  11069.  
  11070.     Following is an example of an MBBSEXEC program which will compile a list
  11071.     of all users who've listed MUSIC as one of their interests:
  11072.  
  11073.        !
  11074.        !   List all users with an interest in MUSIC
  11075.        !
  11076.  
  11077.        #CONFIG_FILE: E:\GS\MAGNUM\MBBSINIT.1
  11078.        #LOG_FILE: MUSIC.LOG
  11079.        #DATABASE: USER
  11080.  
  11081.        #START
  11082.  
  11083.        if(@i ~ "music") {
  11084.                         log("Interests: ",@i)
  11085.                         log("ID: /",@id)
  11086.                         log("lastname: ",@lastname)
  11087.                         log("firstname: ",@firstname)
  11088.                         log("middlename: ",@middlename)
  11089.                         log("---------------------------")
  11090.                         }
  11091.  
  11092.        #STOP
  11093.  
  11094.     Note in the above MBBSEXEC program, the very first thing you see is  the
  11095.     exclamation  mark  (!)  character.    Any  lines  starting  with the '!'
  11096.     character will be  ignored - it  merely serves as  a comment line.   The
  11097.     exclamation  mark  (!)  always  indicates  the  start of a comment - the
  11098.     comment always ends at the physical end of the text line the !  appeared
  11099.     in.  There are only three exceptions as to when the ! character does NOT
  11100.     start a comment:
  11101.  
  11102.       - If it appears within double quotes ("...!...").
  11103.       - If it is immediately followed by the "=" character ( != ).
  11104.       - If it is immediately preceeded & followed by single quotes ( '!' ).
  11105.  
  11106.     Next, three  (3) '#'  statements follow.   The  first is "#CONFIG_FILE:"
  11107.     which tells MBBSEXEC  which database to  work on by  giving it the  full
  11108.     filespec (path  & filename) of the  mbbs initialization  file for Node01
  11109.     (note the  filename extension  tells MBBSEXEC  which node  to work  on).
  11110.     MBBSEXEC obtains  all of  it's information  such as  database names from
  11111.     this  file.    Usually  MBBSINIT.1  is  all that's needed since most BBS
  11112.     sysops running  mulitple nodes  are pointing  the database  files to the
  11113.     same SESION DIRectory.   In the event that  the Sysop is running  2 or 3
  11114.     unique BBSes  (different SESSION  DIRectories and  thus different  user,
  11115.  
  11116.  
  11117.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11118.  
  11119.  
  11120.  
  11121.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-3
  11122.  
  11123.  
  11124.     file,  rje  and  message  databases),  you  would  need  to  change  the
  11125.     #CONFIG_FILE  statement  to  point  to  MBBSINIT.2 or MBBSINIT.3 so that
  11126.     those  databases  will  also  be  changed.   The second statement is the
  11127.     "#LOG_FILE:  "  statement which gives  MBBSEXEC the filename  (or device
  11128.     name such as "prn") in which to write statements to.  The 3rd one is the
  11129.     "#DATABASE:  " statement which tells MBBSEXEC which database to work  on
  11130.     (can be USER, MSG, FILE, RJE or UTILIZ) - in this case, it's USER.
  11131.  
  11132.     Next comes the  actual MBBSEXEC program  which starts with  the "#START"
  11133.     statement and ends with the "#STOP" statement - all text falling  within
  11134.     the  "#START"   and  "#STOP"   statements  are   code  or  instructional
  11135.     statements.
  11136.  
  11137.     Examining the above code, we notice that the first code statement is:
  11138.  
  11139.        if(@i ~ "music") {
  11140.  
  11141.     Breaking down this statement, we note that the syntax of an IF statement
  11142.     is:
  11143.  
  11144.        if(expression) {
  11145.  
  11146.     where "expression" is some sort of comparison operation.  In this  case,
  11147.     the '~' character separating the "@i" from "music" is an operation which
  11148.     checks to see  if string2 is  contained within string1.   In this  case,
  11149.     string1  is  "@i"  which  is  MBBSEXEC's  notation for "USER INTERESTS".
  11150.     Should the string  "music" appear within  string1 (USER INTERESTS),  the
  11151.     result will be TRUE, otherwise FALSE.  NOTE THAT THE OPENING BRACE ( { )
  11152.     MUST APPEAR  ON THE  SAME LINE  AS THE  "IF(expression)" statement.   In
  11153.     other words:
  11154.  
  11155.        if(expression)             this is INCORRECT
  11156.           {
  11157.           .
  11158.           .
  11159.           }
  11160.  
  11161.  
  11162.        if(expression) {           this is correct
  11163.                       .
  11164.                       .
  11165.                       }
  11166.  
  11167.     If the "expression" is TRUE,  then MBBSEXEC will perform the  statements
  11168.     enclosed between  the starting  and ending  braces (  { and  } ). If the
  11169.     "expression" is FALSE,  then MBBSEXEC will  skip to the  first statement
  11170.     following the ending brace ( } ). Please note that the ending brace must
  11171.     be on  a line  by itself,  while the  beginning brace  must be the first
  11172.     nonspace character appearing after an "if(expression)" statement.
  11173.  
  11174.     Note that  within the  comparison expression,  case (upper/lowercase) is
  11175.     not important.  "music", "Music", "MUSIC", "MuSic" are all identical  as
  11176.     far as MBBSEXEC is concerned.
  11177.  
  11178.  
  11179.  
  11180.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11181.  
  11182.  
  11183.  
  11184.     Page  9-4                 The MBBSEXEC Sysop Maintenance Utility Program
  11185.  
  11186.  
  11187.     Within the braces in the above example is a series of "log"  statements.
  11188.     A "log" statement merely writes output to the "LOG" file you  specificed
  11189.     in the "#LOG_FILE:   " statement.  The  basic syntax of a  log statement
  11190.     is:
  11191.  
  11192.        log("quoted string",@field)
  11193.  
  11194.           or
  11195.  
  11196.        log("quoted string")
  11197.  
  11198.     The  "quoted string" parameter  gets written  to the  log file,  and the
  11199.     @field writes  the current  value of  @field to  the log  file.   In the
  11200.     former, @field can be any of the predefined user fields (we'll present a
  11201.     list of predefined field names later).
  11202.  
  11203.     MBBSEXEC  will  perform  the  statements  between  the  #START and #STOP
  11204.     statements once for EACH record within the USER database.  It will  scan
  11205.     every  @I  field  (user  interests)  for  the  word  "MUSIC", and if the
  11206.     comparison is TRUE, MBBSEXEC will  perform all of the statements  within
  11207.     the { and } block.  The list might look something like this:
  11208.  
  11209.        Interests: FISHING SWIMMING MUSIC CHESS
  11210.        ID: /158
  11211.        lastname: SMITH
  11212.        firstname: JOHN
  11213.        middlename: S
  11214.        ---------------------------
  11215.        Interests: COMPUTERS MUSIC MIDI
  11216.        ID: /202
  11217.        lastname: JOHNSON
  11218.        firstname: ALFRED
  11219.        middelname: E
  11220.        ---------------------------
  11221.        Interests: OS/2 MUSIC CARS BOATS
  11222.        ID: /303
  11223.        lastname: DUNN
  11224.        firstname: JULIE
  11225.        middlename: SARAH
  11226.        ---------------------------
  11227.  
  11228.     This  example  only  made  a  list  of  users  with a specific interest.
  11229.     MBBSEXEC is  also capable  of modifying  user fields  as we'll  see in a
  11230.     moment.
  11231.  
  11232.  
  11233.  
  11234.  
  11235.  
  11236.  
  11237.  
  11238.  
  11239.  
  11240.  
  11241.  
  11242.  
  11243.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11244.  
  11245.  
  11246.  
  11247.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-5
  11248.     MBBSEXEC Field Names
  11249.  
  11250.  
  11251.  
  11252.     MBBSEXEC  incorporates   predefined  field   names  for   accessing  the
  11253.     individual fields within the databases.  When you access the Sysop  menu
  11254.     from within Magnum BBS, you'll notice  that most of the field names  for
  11255.     the User Database area will usually  be the same names as those  used by
  11256.     the MBBSEXEC program.  The '@' character precedes all field names within
  11257.     the MBBSEXEC program.
  11258.  
  11259.     MBBSEXEC  supports  the  USER.DAT  and  USER.KEY databases, the FILE.DAT
  11260.     database, the MSG.DAT database, the RJE.DAT and the UTILIZ.DAT database.
  11261.  
  11262.     NOTE: IT IS STRONGLY RECOMMENDED THAT YOU BACK UP YOUR *.DAT AND *.KEY
  11263.           FILES BEFORE RUNNING THE MBBSEXEC PROGRAM. THIS WAY YOU'LL BE ABLE
  11264.           TO RESTORE THE DATABASES IN THE EVENT OF AN UNEXPECTED ALTERATION
  11265.           TO THE DATABASES.
  11266.  
  11267.     IMPORTANT: IF AN ERROR OCCURS DURING PROCESSING YOUR .MEX FILE (SYNTAX
  11268.                OR OTHERWISE), AND A LINE NUMBER INDICATING WHICH LINE THE
  11269.                ERROR OCCURED, MBBSEXEC CREATES A FILE WITH AN EXTENSION OF
  11270.                .SNP (SNAPSHOT) - THIS .SNP FILE IS THE FILE IT IS REFERRING
  11271.                TO - NOT YOUR ORIGINAL .MEX FILE!!! IF YOUR .MEX FILE IS
  11272.                CALLED MUSIC.MEX, THE REFERENCE TO THE ERROR IS IN THE LINE
  11273.                NUMBER SPECIFIED BY THE ERROR MESSAGE IN FILE MUSIC.SNP
  11274.  
  11275.     Before beginning,  we'll present  the allowable  field names  for the  5
  11276.     databases which MBBSEXEC  will accept.   Before presenting the  list, we
  11277.     must point out that there  is one fieldname used internally  by MBBSEXEC
  11278.     which is not a  part of the database  fields.  This fieldname  is @TODAY
  11279.     which, when encountered  in an MBBSEXEC  program statement, is  replaced
  11280.     with the current date.  This allows such statements as:
  11281.  
  11282.        if(@lastcall < @today - 90) {
  11283.                                    @deleted = TRUE
  11284.                                    log("Deleted ID: /",@id)
  11285.                                    }
  11286.  
  11287.     The above statement would  delete all users who's  last call to the  bbs
  11288.     was greater than 90 days ago from today.
  11289.  
  11290.     All MBBSEXEC fieldnames are case  insensitive meaning that you can  type
  11291.     these fieldnames in uppercase, lowercase or any combination.
  11292.  
  11293.     NOTE: All DATE fields are in U.S. format (MM/DD/YYYY) and must be 10
  11294.           characters in length. Even if you're using a European version of
  11295.           Magnum, the internal storage of dates are in U.S. format!
  11296.  
  11297.  
  11298.  
  11299.  
  11300.  
  11301.  
  11302.  
  11303.  
  11304.  
  11305.  
  11306.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11307.  
  11308.  
  11309.  
  11310.     Page  9-6                 The MBBSEXEC Sysop Maintenance Utility Program
  11311.                                            Field Names for the USER Database
  11312.  
  11313.  
  11314.     Following is a list of the fieldnames and their meanings.  Note that  in
  11315.     column 1, a lowercase letter appears which indicates what type of  field
  11316.     it  is.    This  lowercase  letter  is  one  of:    s=string, n=numeric,
  11317.     c=character, b=boolean.  You'll need  to know this information later  on
  11318.     when you write your MBBSEXEC programs.  Here is the USER fieldname list:
  11319.  
  11320.     s  @LASTNAME       - User's Last Name
  11321.     s  @FIRSTNAME      - User's First Name
  11322.     s  @MIDDLENAME     - User's Middle Name
  11323.     n  @ID             - User's ID number (NOTE: number only, no '/' char)
  11324.     s  @STREET1        - User's Company Name
  11325.     s  @STREET2        - User's Street Address
  11326.     s  @CITY           - User's City
  11327.     s  @STATE          - User's State or Province
  11328.     s  @ZIP            - User's Zip Code or other Zone Info
  11329.     s  @COUNTRY        - User's Country
  11330.     s  @FIRSTCALL      - Date User First Called the BBS (MM/DD/YYYY)
  11331.     s  @LASTCALL       - Date User Last Called the BBS (MM/DD/YYYY)
  11332.     s  @TIMELAST       - Time User Last Called (HH:MM in 24-hr format)
  11333.     s  @PASSWORD       - User's Password
  11334.     s  @DOB            - User's Date of Birth (MM/DD/YYYY)
  11335.     s  @PHONE1         - User's Home Phone#
  11336.     s  @PHONE2         - User's Company Phone#
  11337.     s  @CPUTYPE        - User's Computer Type [can be overridden with a
  11338.                          sysop-defined field. See CPUTYPE_OVERRIDE in Ch 1.
  11339.     s  @CONFERENCES    - User's Conferences allowed (ie: "abefh")
  11340.     s  @MEMODATE1      - User's Memodate #1
  11341.     s  @MEMODATE2      - User's Memodate #2
  11342.     b  @PRIVMSG        - Is user allowed to enter Private Messages?
  11343.     b  @DELMSG         - Is user allowed to delete messages?
  11344.     s  @SYSOP_COMMENT  - Sysop's Comment about user
  11345.     c  @XFERTYPE       - User's default file xfer protocol (X,C,1,Y,G,Z,N)
  11346.     c  @PERIODTYPE     - User's Period Type (D,W,M,Y)
  11347.     b  @EXPERT         - Expert mode on?
  11348.     b  @LOCKED_OUT     - Is user locked out?
  11349.     b  @COLOR          - Is user using ANSI color?
  11350.     b  @DISPLAY_MORE   - Does user want the "- - More - -" prompt?
  11351.     b  @ERASE_MORE     - Does user want the "- - More - -" prompt erased?
  11352.     b  @HOTKEYS        - Is user using single-keystroke commands?
  11353.     n  @LINES_PAGE     - User's number of lines per page
  11354.     n  @LEVEL          - User's security level
  11355.     n  @UPLOADS        - Number of uploads user performed
  11356.     n  @DOWNLOADS      - Number of downloads user performed
  11357.     n  @CPS            - User's adjusted Characters Per Second transfer rate
  11358.     n  @UDRATIO        - User's Upload/Download ratio
  11359.     n  @TTL_CALLS      - User's total number of calls
  11360.     n  @REMAINING      - User's time remaining for the last call
  11361.     n  @REMAINING_PERIOD - User's time remaining for the period
  11362.     n  @K_UL           - Kbytes User performed in Uploads
  11363.     n  @K_DL           - Kbytes User performed in Downloads
  11364.     n  @PERIOD_DL      - User's downloads this period
  11365.     n  @PERIOD_K_DL    - User's Kbyte downloads this period
  11366.     n  @DL_THIS_PERIOD - Downloads user performed this period
  11367.  
  11368.  
  11369.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11370.  
  11371.  
  11372.  
  11373.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-7
  11374.     Field Names for the USER Database
  11375.  
  11376.  
  11377.     n  @K_DL_THIS_PERIOD - Kbytes in downloads user performed this period
  11378.     n  @DAILY_TIME     - Daily Time allowed on system
  11379.     n  @DAILY_DL       - Daily downloads User is allowed
  11380.     n  @DAILY_K_DL     - Daily Kbyte downloads User is allowed
  11381.     b  @PRIVACY        - Is user's Privacy switch on?
  11382.     s  @FILE_U_AREAS   - File upload areas allowed
  11383.     s  @FILE_D_AREAS   - File download areas allowed
  11384.     s  @FILE_L_AREAS   - File list areas allowed
  11385.     s  @MSG_R_AREAS    - Message Read areas allowed
  11386.     s  @MSG_W_AREAS    - Message Write areas allowed
  11387.     s  @MSG_L_AREAS    - Message List areas allowed
  11388.     s  @DISP_CMDS      - Display commands allowed
  11389.     s  @I              - User's interests
  11390.     c  @COMPRESS       - User's compression type (A,Z)
  11391.     n  @PUBLM          - Number of public messages entered by user
  11392.     n  @PRIVM          - Number of private messages entered by user
  11393.     b  @DELETED        - Is this user deleted?
  11394.     c  @DATEFORMAT     - User's Date Format (U=US, E=Europe)
  11395.     b  @SUB_FILEDEL    - Subtract upload credit when a user deletes a file?
  11396.     s  @FREE_DL_AREAS  - Specify the area(s) (A-Z) which a user can download
  11397.                          from without being counted toward their UL/DL ratio
  11398.     n  @FREE_DOWNLOADS - The number of FREE downloads the user has performed
  11399.     n  @RJEJOBS        - The number of RJE jobs the user submitted.
  11400.     n  @SENDNULLS      - Number of Nulls to send after CR/LF (usually 0) can
  11401.                          range from 0 to 255.
  11402.     c  @FILELIST_PREF  - The user's FileList preference (C=Chronological
  11403.                          order, R=Reverse Chronological Order). No defaults.
  11404.     b  @REUSE          - Y/N or TRUE/FALSE to indicate that this ID (record)
  11405.                          can or cannot be reused if deleted. Note that in
  11406.                          order for this to be reused, the REUSE_DEL keyword
  11407.                          in your STARTUP.n file(s) must also be set to Y.
  11408.     n  @MSGGROUP       - For those using the extended MsgBase module,
  11409.                          accesses the user's message group field.
  11410.     n  @FILEGROUP      - For those using the extended FileBase module,
  11411.                          access the user's file group field.
  11412.     c  @TYPE           - Magnum supports two kinds of user accounts. USER
  11413.                          and MAIL. This field holds either U for USER or M
  11414.                          for MAIL.
  11415.     n  @FILEBASE       - The LAST FileBase the User was in, or the default
  11416.                          FileBase to jump to the next time the user logs on.
  11417.     n  @MSGBASE        - The LAST MsgBase the User was in, or the default
  11418.                          MsgBase to jump to the next time the user logs on.
  11419.     b    @RMAIL        - Y/N or TRUE/FALSE to indicate that this user can or
  11420.                          cannot use the remote mail system. If TRUE, the
  11421.                          user can enter a message to another user on another
  11422.                          Magnum system supported by the Sysop. If FALSE, the
  11423.                          user cannot enter or reply to remote mail messages.
  11424.  
  11425.     Note  that  field  types  (s,n,c,b)  indicate  what  type field is being
  11426.     described by the fieldnames.  For  type 'b' (boolean), it will hold  one
  11427.     of two things - TRUE or FALSE (or Y or N, or 1 or 0).  We suggest  using
  11428.     the words TRUE or FALSE for these fields.  For example: @PRIVACY = FALSE
  11429.  
  11430.  
  11431.  
  11432.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11433.  
  11434.  
  11435.  
  11436.     Page  9-8                 The MBBSEXEC Sysop Maintenance Utility Program
  11437.                                            Field Names for the USER Database
  11438.  
  11439.  
  11440.     The n (numeric) fields hold digits only.  For example: @UDRATIO = 20
  11441.  
  11442.     The c  (character) fields  hold a  single character  and must  be within
  11443.     single quotes when comparing or assigning.  For example:
  11444.  
  11445.        if(@compress == 'A') {
  11446.                             @COMPRESS = 'Z'
  11447.                             }
  11448.  
  11449.     Finally, the s (string) fields holds a string of characters and must  be
  11450.     within double quotes when comparing or assigning.  For example:
  11451.  
  11452.        if(@firstname == "Richard") {
  11453.                                    @firstname = "Rick"
  11454.                                    }
  11455.  
  11456.     Note the  1st parameter  of all  comparisons must  be a valid fieldname.
  11457.     The 2nd parameter can be a fieldname or something you choose to compare.
  11458.  
  11459.     This covers the  fieldnames for the  USER databases.   Next, we'll cover
  11460.     the FILE,  MESSAGE, RJE  and UTILIZ  databases, then  continue with  the
  11461.     syntax and construction of an MBBSEXEC program.
  11462.  
  11463.     IMPORTANT: See the section entitled "Date Fields are Special Cases"
  11464.  
  11465.  
  11466.  
  11467.  
  11468.  
  11469.  
  11470.  
  11471.  
  11472.  
  11473.  
  11474.  
  11475.  
  11476.  
  11477.  
  11478.  
  11479.  
  11480.  
  11481.  
  11482.  
  11483.  
  11484.  
  11485.  
  11486.  
  11487.  
  11488.  
  11489.  
  11490.  
  11491.  
  11492.  
  11493.  
  11494.  
  11495.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11496.  
  11497.  
  11498.  
  11499.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-9
  11500.     Field Names for the MSG Database
  11501.  
  11502.  
  11503.  
  11504.     b  @DELETED        - Is this message deleted?
  11505.     c  @CONF           - Conference area (A-Z) of message
  11506.     b  @PRIVATE        - Is this a private message?
  11507.     b  @RECEIVED       - Has the message been received by addressee?
  11508.     n  @FROM           - ID of who wrote the message (-1 if from Magnum)
  11509.     n  @TO             - ID of who the message is to (-1 if for ALL)
  11510.     n  @NUM            - ID of original addresse (if CC or Forward)
  11511.     n  @TIMESREAD      - Number of times message was read
  11512.     s  @SUBJECT        - Message Subject
  11513.     s  @DATE           - Date of Message (MM/DD/YYYY)
  11514.     s  @TIME           - Time of Message (HH:MM in 24-hour format)
  11515.     s  @EXPDATE        - Expiration date of message (MM/DD/YYYY)
  11516.     b  @CC             - Is this a carbon copy?
  11517.     b  @FORWARD        - Is this a Forwarded message?
  11518.     b  @RECEIPT        - Is a receipt wanted for this message?
  11519.     b  @REPLIES        - Are their any replies to this message?
  11520.     b  @ISREPLY        - Is this message a reply to another message?
  11521.     s  @RCVDATE        - Date message was received by addressee (MM/DD/YYYY)
  11522.     s  @RCVTIME        - Time message was received by addressee (MM/DD/YYYY)
  11523.     s  @FILENAME       - Ref# or Filename (excluding pathname) of message
  11524.     n  @MSGBASE        - Indicates MessageBase of message (0-255) (will
  11525.                           always be 0 if you don't have the optional
  11526.                           extended messagebase module).
  11527.     n  @FROM_PSERNUM   - Parent Serial# of Sending BBS
  11528.     n  @TO_PSERNUM     - Parent Serial# of Target BBS
  11529.     b  @SENT           - Sent (TRUE/FALSE) [if to a different BBS]
  11530.     s  @FROM_USERNAME  - Full name (string) of originating user
  11531.     s  @FROM_FILENAME  - Originating System's Filename (REF#)
  11532.     n  @FROM_MSGBASE   - Originating System's MsgBase (0-255)
  11533.     c  @MSGMILC        - The MILC character used for this message.
  11534.                          NOTE: This field is meant to be used when the
  11535.                                serial# of the destination system is not the
  11536.                                same as the serial# of the sending system.
  11537.     b  @ECHO           - Y/N or TRUE/FALSE to indicate that this message
  11538.                          is echoable to other systems on the mail network.
  11539.                          If not, the message is sent as store/forward only.
  11540.                          NOTE: This field is ONLY valid if the serial# of
  11541.                                the destination system is not the same as
  11542.                                the serial# of the sending system.
  11543.  
  11544.  
  11545.  
  11546.  
  11547.  
  11548.  
  11549.  
  11550.  
  11551.  
  11552.  
  11553.  
  11554.  
  11555.  
  11556.  
  11557.  
  11558.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11559.  
  11560.  
  11561.  
  11562.     Page  9-10                The MBBSEXEC Sysop Maintenance Utility Program
  11563.                                            Field Names for the FILE Database
  11564.  
  11565.  
  11566.  
  11567.     b  @DELETED        - Is this file deleted?
  11568.     c  @AREA           - Area file is in (A-Z)
  11569.     b  @PRIVATE        - Is this a private (password protected) file?
  11570.     c  @UL_METHOD      - Upload method (X,C,1,Y,G,Z)
  11571.     s  @NAME           - Name of file (filename.ext)
  11572.     s  @PASSWORD       - Password of file (if @private == TRUE)
  11573.     s  @DATE           - Date file was uploaded (MM/DD/YYYY)
  11574.     s  @TIME           - Time file was uploaded (HH:MM in 24-hour format)
  11575.     s  @EXPDATE        - Expiration date of file (MM/DD/YYYY)
  11576.     s  @BRIEF          - Brief explanation of file (string of 76 chars)
  11577.     s  @DATELAST       - Date Last accessed (MM/DD/YYYY)
  11578.     n  @WHO            - ID of uploader
  11579.     b  @DESFILE        - Is a description file available?
  11580.     n  @SIZE           - Size of file
  11581.     n  @DL             - Number of downloads
  11582.     n  @FILEBASE       - Indicates FileBase (0-255) (will always be 0 if
  11583.                          you don't have the optional extended filebase
  11584.                          module).
  11585.  
  11586.  
  11587.  
  11588.  
  11589.  
  11590.  
  11591.  
  11592.  
  11593.  
  11594.  
  11595.  
  11596.  
  11597.  
  11598.  
  11599.  
  11600.  
  11601.  
  11602.  
  11603.  
  11604.  
  11605.  
  11606.  
  11607.  
  11608.  
  11609.  
  11610.  
  11611.  
  11612.  
  11613.  
  11614.  
  11615.  
  11616.  
  11617.  
  11618.  
  11619.  
  11620.  
  11621.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11622.  
  11623.  
  11624.  
  11625.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-11
  11626.     Field Names for the RJE Database
  11627.  
  11628.  
  11629.  
  11630.     b  @DELETED        - Is this record deleted?
  11631.     b  @STATUS         - Is this RJE Job completed?
  11632.     s  @NAME           - RJE Jobname Magnum assigned to this Job
  11633.     s  @STARTDATE      - Date Job started (MM/DD/YYYY)
  11634.     s  @STOPDATE       - Date Job ended (MM/DD/YYYY)
  11635.     s  @PGMNAME        - Name of program started
  11636.     s  @PARMS          - Parms (arguments) passed to program
  11637.     n  @USERID         - User ID of User that started this Job
  11638.     n  @STARTTIME      - Time started (seconds from midnight of @STARTDATE)
  11639.     n  @STOPTIME       - Time stopped (seconds from midnight of @STOPDATE)
  11640.     n  @SECONDS        - Total run time of job in elapsed seconds
  11641.     n  @PRTYCLASS      - Priority class of Job when started
  11642.     n  @PRTYLEVEL      - Priority level of Job when started
  11643.     n  @PID            - Process IDentification of Job
  11644.  
  11645.     NOTES: - The keywords @STOPDATE, @STOPTIME and @SECONDS have no meaning
  11646.              if @STATUS is FALSE (job is still running).
  11647.            - The keyword @PID has no meaning if @STATUS is TRUE (job is
  11648.              completed).
  11649.  
  11650.  
  11651.  
  11652.  
  11653.  
  11654.  
  11655.  
  11656.  
  11657.  
  11658.  
  11659.  
  11660.  
  11661.  
  11662.  
  11663.  
  11664.  
  11665.  
  11666.  
  11667.  
  11668.  
  11669.  
  11670.  
  11671.  
  11672.  
  11673.  
  11674.  
  11675.  
  11676.  
  11677.  
  11678.  
  11679.  
  11680.  
  11681.  
  11682.  
  11683.  
  11684.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11685.  
  11686.  
  11687.  
  11688.     Page  9-12                The MBBSEXEC Sysop Maintenance Utility Program
  11689.                                          Field Names for the UTILIZ Database
  11690.  
  11691.  
  11692.  
  11693.     n  @NODE           -  Node number                   ** See NOTE #1 below
  11694.     s  @STARTDATE      -  Session started (MM/DD/YYYY)
  11695.     s  @STOPDATE       -  Session ended (MM/DD/YYYY)
  11696.     n  @STARTTIME      -  Start time in seconds from midnight
  11697.     n  @STOPTIME       -  Stop time in seconds from midnight
  11698.     n  @IDNUM          -  User idnum for this session
  11699.     n  @BAUDRATE       -  User's baud rate              ** See NOTE #2 below
  11700.     n  @LEVEL          -  User's security level
  11701.     n  @MSGS_READ      -  # msgs read this session
  11702.     n  @MSGS_WRITTEN   -  # msgs written this session
  11703.     n  @FILES_UL       -  # files uploaded this session
  11704.     n  @FILES_DL       -  # files downloaded this session
  11705.     n  @RJEJOBS        -  # RJE jobs started this session
  11706.     n  @SERIALNUM      -  Serial# of session (not parent#)
  11707.     n  @TTLTIME        -  Ttl time of session (seconds) ** See NOTE #3 below
  11708.  
  11709.  
  11710.     NOTE #1: When processing the UTILIZ database, if the @NODE value is
  11711.              a negative number, it indicates the session was terminated
  11712.              due to dropped carrier.
  11713.              If the @NODE value is negative, simply multiply by -1 to
  11714.              obtain the correct node number.
  11715.              If the @NODE value is negative (dropped carrier), information
  11716.              in the record may be worthless if the drop of carrier took
  11717.              place prior to the user actually logging on. To find out if
  11718.              the user actually logged on, the @BAUDRATE value should be
  11719.              non-zero. If the @BAUDRATE value is zero, this record is to be
  11720.              disregarded.
  11721.  
  11722.     NOTE #2: When processing the UTILIZ database, if the @BAUDRATE value is
  11723.              a negative number, it indicates the connection was established
  11724.              with modem error correction (ie: MNP, LAP, etc).
  11725.              If the @BAUDRATE value is negative, simply multiply by -1 to
  11726.              obtain the correct baudrate. If the @BAUDRATE value is zero
  11727.              (0), the entire record is to be discarded (ignored) because the
  11728.              session ended due to dropped carrier prior to the user actually
  11729.              logging on.
  11730.  
  11731.     NOTE #3: When processing the UTILIZ database, the @TTLTIME variable is
  11732.              not part of the database, but is derived by MBBSEXEC.EXE by
  11733.              taking into consideration the @STARTDATE, @STARTTIME, @STOPDATE
  11734.              and @STOPTIME parameters. @TTLTIME is expressed as the total
  11735.              number of seconds the user was online.
  11736.              @TTLTIME is a "read-only" variable. You cannot use this
  11737.              variable to assign a value to (ie: must not appear on the left
  11738.              side of an = sign).
  11739.  
  11740.     Please note that the UTILIZ.DAT database will not exist unless the
  11741.     TRACK_UTILIZATION parm in your STARTUP.x file(s) is set to Y.
  11742.  
  11743.  
  11744.  
  11745.  
  11746.  
  11747.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11748.  
  11749.  
  11750.  
  11751.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-13
  11752.     Syntax and Construction of an MBBSEXEC program
  11753.  
  11754.  
  11755.  
  11756.     An MBBSEXEC program consists of  an ASCII text file containing  MBBSEXEC
  11757.     program statements. The physical limitations of the file are:
  11758.  
  11759.        - Each text line can be up to 120 characters in length
  11760.        - Each text line must be terminated by a CR/LF pair (automatic with
  11761.          most text editors)
  11762.        - The entire file must not exceed 64,000 bytes (file size).
  11763.  
  11764.     We've seen  an example  of a  small MBBSEXEC  program earlier, but we'll
  11765.     review the basic skeleton here again:
  11766.  
  11767.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  11768.        #LOG_FILE: MUSIC.LOG
  11769.        #DATABASE: USER
  11770.  
  11771.        #START
  11772.        .
  11773.        .
  11774.        .
  11775.        ! This is a comment
  11776.        .
  11777.        .
  11778.        .
  11779.        #STOP
  11780.  
  11781.     The  #CONFIG_FILE:     statement   tells  MBBSEXEC   the  name   of  the
  11782.     initialization file used by the BBS program (MBBS.EXE).  The  #LOG_FILE:
  11783.     statement tells MBBSEXEC  what file to  write "log" statements  to.  The
  11784.     #DATABASE:  statement  tells MBBSEXEC which  database to work  on (USER,
  11785.     MSG, FILE, RJE or UTILIZ) -  this is important because you'll also  note
  11786.     that some of the  fieldnames for the 5  databases are identical -  it is
  11787.     the #DATABASE:  statement which makes the distinction.
  11788.  
  11789.     NOTE: For those using the Magnum 'Extended MessageBase' or 'Extended
  11790.           FileBase' modules, you can specify which MessageBase or FileBase
  11791.           file to process (not to be confused with the @MSGBASE field or
  11792.           @FILEBASE fields above) by specifying the #DATABASE statement as
  11793.           follows (via examples):
  11794.  
  11795.                #DATABASE: MSG              defaults to main Message Database
  11796.                #DATABASE: MSG5             uses Message Database 5
  11797.                #DATABASE: MSG109           uses Message Database 109
  11798.                #DATABASE: MSG0             same as "#DATABASE: MSG"
  11799.                #DATABASE: FILE             same as "#DATABASE: FILE0"
  11800.                #DATABASE: FILE76           uses File Database 76
  11801.  
  11802.          Be advised that this statement is used only to determine the
  11803.          filespec of the datafile for that message or file base. If you're
  11804.          using MSG.DAT in the session directory for each of your message
  11805.          bases, then MSG and MSG110, for example, are mutually exclusive.
  11806.          If any of the FILE or MSG databases are used for more than one
  11807.          MSG or FILE database, use the @MSGBASE or @FILEBASE keywords
  11808.  
  11809.  
  11810.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11811.  
  11812.  
  11813.  
  11814.     Page  9-14                The MBBSEXEC Sysop Maintenance Utility Program
  11815.                               Syntax and Construction of an MBBSEXEC program
  11816.  
  11817.  
  11818.          (fields) within your .MEX programs to narrow down which file or
  11819.          message base you wish.
  11820.  
  11821.     NOTE: For users of the Extended FileBase or MsgBase modules, you may
  11822.           also use the follwoing #DATABASE statements:
  11823.  
  11824.                   #DATABASE: FILE*
  11825.  
  11826.                   #DATABASE: MSG*
  11827.  
  11828.           When the asterisk character (*) is used as above (FILE* or MSG*),
  11829.           it tells MBBSEXEC to apply your .MEX program to EVERY FILE and MSG
  11830.           database on the system! This comes in handy for those who do not
  11831.           keep their message and/or file database in a single database file.
  11832.           MBBSEXEC will always start with your main database, then restart
  11833.           with the next, then the next, etc with this method.
  11834.  
  11835.     The  #START  and  #STOP  statements  tell  MBBSEXEC  that all statements
  11836.     appearing inbetween are to be executed (carried out) for every record in
  11837.     the database.
  11838.  
  11839.     Note  that  any  statement  starting  with  an exclamation mark (!) is a
  11840.     comment  and  will  be  ignored  by  MBBSEXEC.  Comments merely serve as
  11841.     useful notes to yourself.  The periods above (.) are not statements  but
  11842.     merely for  illustrative purposes  - these  periods (.)  would represent
  11843.     actual program statements in an MBBSEXEC program file.
  11844.  
  11845.  
  11846.  
  11847.  
  11848.  
  11849.  
  11850.  
  11851.  
  11852.  
  11853.  
  11854.  
  11855.  
  11856.  
  11857.  
  11858.  
  11859.  
  11860.  
  11861.  
  11862.  
  11863.  
  11864.  
  11865.  
  11866.  
  11867.  
  11868.  
  11869.  
  11870.  
  11871.  
  11872.  
  11873.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11874.  
  11875.  
  11876.  
  11877.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-15
  11878.     The Assignment Statement
  11879.  
  11880.  
  11881.  
  11882.     The  Assignment  statement  is  the  simplest  of  all.    Basically, an
  11883.     assignment statement places a value  you supply into one of  the fields.
  11884.     For example, the statement:
  11885.  
  11886.        @memodate1 = "06/30/1990"
  11887.  
  11888.     would assign the string "06/30/1990" to the @memodate1 field of the user
  11889.     database.  You'll  probably want to  have assignment statements  execute
  11890.     only if an IF  statement is true, otherwise  it will be assigned  to all
  11891.     users.  The above  example is an example  of string assignment.   If the
  11892.     field  is  a  string  field,  then  the assignment part must be enclosed
  11893.     within double quotes.  Another example:
  11894.  
  11895.        @file_l_areas = "abchjk"
  11896.  
  11897.     An example  of an  assignment statement  for a  character field would be
  11898.     enclosed in single quotes.  For example:
  11899.  
  11900.        @compress = 'Z'
  11901.  
  11902.     An example of  an assignment statement  for a numeric  field is probably
  11903.     the simplest of the assignment statements.  For exmple:
  11904.  
  11905.        @level = 6
  11906.  
  11907.     Finally, an assignment statement for  a boolean field is either  TRUE or
  11908.     FALSE.  For example:
  11909.  
  11910.        @color = TRUE
  11911.  
  11912.     Date  fields  are  handled  differently  -  BE  SURE TO VIEW THE SECTION
  11913.     ENTITLED "DATE FIELDS ARE SPECIAL CASES"!
  11914.  
  11915.     For any assignment statement, look at the database fieldname earlier  in
  11916.     this chapter and  note if it's  a string, character,  numeric or boolean
  11917.     field and follow the assignment rules for that type of field.
  11918.  
  11919.  
  11920.  
  11921.  
  11922.  
  11923.  
  11924.  
  11925.  
  11926.  
  11927.  
  11928.  
  11929.  
  11930.  
  11931.  
  11932.  
  11933.  
  11934.  
  11935.  
  11936.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  11937.  
  11938.  
  11939.  
  11940.     Page  9-16                The MBBSEXEC Sysop Maintenance Utility Program
  11941.                                                   Comparison Statements (IF)
  11942.  
  11943.  
  11944.  
  11945.     The Comparison  (or IF)  statements are  somewhat more  comprehensive to
  11946.     grasp.  If you're experienced in the C programming language it will help
  11947.     you a great deal.
  11948.  
  11949.     Keep in  mind the  rules you've  learned for  the 4  kinds of  datatypes
  11950.     described earlier (string,  numeric, character and  boolean).  The  same
  11951.     rules  apply  for  comparisons  (ie:    strings  to  be  compared   with
  11952.     double-quoted strings,  characters to  be compared  with a single-quoted
  11953.     character,  numerics  to  be  compared  with  digits, and booleans to be
  11954.     compared with TRUE or FALSE).
  11955.  
  11956.     There  are  7  kinds  of  comparators  for  comparison  statements.    A
  11957.     comparator tells MBBSEXEC what kind of comparison you wish performed  on
  11958.     the two fields being compared.  The comparators are:
  11959.  
  11960.        ==     Test for equality
  11961.        !=     Test for inequality
  11962.        >=     Test for greater than or equal
  11963.        <=     Test for less than or equal
  11964.         >     Test for greater than
  11965.         <     Test for less than
  11966.         ~     Test if string2 is within string1 (string comparisons only)
  11967.  
  11968.     The following example tests for a user id of 177 and deletes the user if
  11969.     a match occurs.
  11970.  
  11971.        if(@id == 177) {
  11972.                       @deleted = TRUE
  11973.                       }
  11974.  
  11975.     The following example tests for all  callers whose last call to the  BBS
  11976.     was 90 days ago or more and deletes them if true.
  11977.  
  11978.        if(@lastcall < @today - 90) {
  11979.                                    @deleted = TRUE
  11980.                                    }
  11981.  
  11982.     NOTE: Nested IF statements are allowed. See "MBBSEXEC Advanced Features"
  11983.           later in this chapter.
  11984.  
  11985.  
  11986.  
  11987.  
  11988.  
  11989.  
  11990.  
  11991.  
  11992.  
  11993.  
  11994.  
  11995.  
  11996.  
  11997.  
  11998.  
  11999.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12000.  
  12001.  
  12002.  
  12003.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-17
  12004.     Branch Statements (GOTO)
  12005.  
  12006.  
  12007.  
  12008.     There will be times  when you wish to  test for a certain  condition and
  12009.     skip program statements if the condition tests true.  Since MBBSEXEC  is
  12010.     a simple  programming language  without AND  and OR  operators, the GOTO
  12011.     statement can  emulate AND  and/or OR  conditions.   The GOTO  statement
  12012.     consists of  2 parts:   the  actual GOTO  statement, and  a LABEL as the
  12013.     target of a GOTO.  The syntax of a GOTO statement is:
  12014.  
  12015.        goto(labelname)
  12016.  
  12017.     The Syntax of a label is:
  12018.  
  12019.        labelname:
  12020.  
  12021.     The two things to remember are that the GOTO itself must be followed  by
  12022.     a label name enclosed within parenthesis, and the actual label name must
  12023.     appear elsewhere  within the  #START and  #STOP statements  and must end
  12024.     with the colon (:)  character.
  12025.  
  12026.     As an example, suppose you want to increase the security level of  level
  12027.     5 users to level  6 only if they've  entered 2 or more  public messages.
  12028.     The following example demonstrates this:
  12029.  
  12030.        if(@level != 5) {
  12031.                        goto(skipit)
  12032.                        }
  12033.  
  12034.        if(@publm >= 2) {
  12035.                        @level = 6
  12036.                        log("Upgraded from level 5 to 6: /",@ID)
  12037.                        log("Lastname: ",@lastname)
  12038.                        log("Firstname: ",@firstname)
  12039.                        log("# Public Msgs entered: ",@publm)
  12040.                        log("-------------------------------")
  12041.                        }
  12042.  
  12043.        skipit:
  12044.  
  12045.     In the above example, the first  IF statement tests the user level.   If
  12046.     it is not a user level of 5, then the IF condition is TRUE and takes the
  12047.     branch to the SKIPIT:  label.  We want to perform this branch because we
  12048.     want the following statements executed for only level 5 users.  If  they
  12049.     are a level 5 user, the first  IF will test out FALSE and will  not take
  12050.     the branch  - instead,  it will  fall through  to the  next IF statement
  12051.     which tests for  the number of  public messages entered.   If 2  or more
  12052.     public messages are entered, the  user's security level is changed  to 6
  12053.     and we write  a summary of  the change to  the log file.
  12054.  
  12055.     The  above  programming  statements  show  how  an  AND condition can be
  12056.     emulated by using  a couple of  IF statements and  a GOTO.   In a higher
  12057.     level language such as C, the same thing could be accomplished without a
  12058.     GOTO and with only 1 IF statement - ie:  if((@level == 5) && (@publm  >=
  12059.     2)) but since this is a  simple programming language, we must use  the 2
  12060.  
  12061.  
  12062.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12063.  
  12064.  
  12065.  
  12066.     Page  9-18                The MBBSEXEC Sysop Maintenance Utility Program
  12067.                                                     Branch Statements (GOTO)
  12068.  
  12069.  
  12070.     IF statements in  conjunction with a  GOTO.  For  those with programming
  12071.     experience,  IF  statements  can  be  nested  in order to emulate an AND
  12072.     statement:
  12073.  
  12074.         if(@level == 5) {
  12075.            if(@publm >= 2) {
  12076.               @level = 6
  12077.               log("Upgraded from level 5 to 6: /",@ID)
  12078.               log("Lastname: ",@lastname)
  12079.               log("Firstname: ",@firstname)
  12080.               log("# Public Msgs entered: ",@publm)
  12081.               log("-------------------------------")
  12082.               }
  12083.            }
  12084.  
  12085.     The above example  (using nested IF  statements) demonstrates a  cleaner
  12086.     way of doing things, and eliminates the need for a GOTO statement.
  12087.  
  12088.     An important thing to keep in mind is the testing of a field for NUL (if
  12089.     there's anything in a field).   These can all be accomplished by  having
  12090.     the second parameter of an IF statement as 0. For example, if you wanted
  12091.     to delete all users whose memodate1 field is older than today, you would
  12092.     first need to test if the memodate1 field had a value in it:
  12093.  
  12094.        if(@memodate1 == 0) {
  12095.                            goto(skipit)
  12096.                            }
  12097.  
  12098.        if(@memodate1 < @today) {
  12099.                                @deleted = TRUE
  12100.                                }
  12101.  
  12102.        skipit:
  12103.  
  12104.     All fields pertaining to dates are handled as special cases.
  12105.  
  12106.  
  12107.  
  12108.  
  12109.  
  12110.  
  12111.  
  12112.  
  12113.  
  12114.  
  12115.  
  12116.  
  12117.  
  12118.  
  12119.  
  12120.  
  12121.  
  12122.  
  12123.  
  12124.  
  12125.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12126.  
  12127.  
  12128.  
  12129.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-19
  12130.     Date Fields are Special Cases
  12131.  
  12132.  
  12133.  
  12134.     Date fields  are handled  differently for  comparisons than assignments.
  12135.     As  a  matter  of  fact,  date  fields  are  handled  as numerics during
  12136.     comparison,  and  as  strings  during  assignments.    For  example, the
  12137.     statement:
  12138.  
  12139.        if(@lastcall < @today - 90) {
  12140.                                    .
  12141.                                    .
  12142.                                    }
  12143.  
  12144.     is handled  internally by  treating the  @lastcall and  @today fields as
  12145.     numerics.    This  way,  MBBSEXEC  can  perform  numeric  arithmetic and
  12146.     comparison  by   first  converting   date  fields   to  numeric  numbers
  12147.     representing number  of days  since Jan  1, 1980.   You  needn't concern
  12148.     yourself with this, other than the fact that you need to know that dates
  12149.     are handled as numerics for comparison purposes.
  12150.  
  12151.     When assigning something to a date field, the assignment is handled as a
  12152.     double quoted string as expected:
  12153.  
  12154.        @memodate1 = "06/01/1990"
  12155.  
  12156.     The @memodate1 and @memodate2 fields can also accept the @today field +
  12157.     or - a value. For example, the following might be used to set expiration
  12158.     dates of 6 and 12 months for a subscription BBS:
  12159.  
  12160.        @memodate1 = @today + 183
  12161.        @memodate2 = @today + 366
  12162.  
  12163.     Another .MEX file might run as a daily maintenance program which checks
  12164.     these @memodate fields for expiration and act accordingly.
  12165.  
  12166.     It is important to remember the  date rules.  In other words,  you can't
  12167.     compare a date field against a quoted string, but you can compare it  to
  12168.     something  like  @today-90  and  you   can  assign  a  string  such   as
  12169.     "06/01/1990" to  a date  field (and  can use  the exception of assigning
  12170.     with the @today +/- n).
  12171.  
  12172.     REMINDER: ALL DATES ARE STORED AND ENTERED IN U.S. DATE FORMAT!! DO NOT
  12173.               USE EUROPEAN DATE FORMAT WHEN WRITING YOUR .MEX FILES!!
  12174.  
  12175.  
  12176.  
  12177.  
  12178.  
  12179.  
  12180.  
  12181.  
  12182.  
  12183.  
  12184.  
  12185.  
  12186.  
  12187.  
  12188.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12189.  
  12190.  
  12191.  
  12192.     Page  9-20                The MBBSEXEC Sysop Maintenance Utility Program
  12193.                                                                  Mathematics
  12194.  
  12195.  
  12196.  
  12197.     Finally, mathematics can be performed within MBBSEXEC program statements
  12198.     as  we've  seen  with  the  "@today  -  90" example of subtraction.  The
  12199.     mathematical operators which are supported by MBBSEXEC are:
  12200.  
  12201.        +    Addition
  12202.        -    Subtraction
  12203.        /    Division
  12204.        *    Multiplication
  12205.        %    Modulus
  12206.  
  12207.     For those  unfamiliar with  Modulus, it  simply means  "remainder".  For
  12208.     example, 5 divided by 3 (or 5/3) is 1, while 5 modulus 3 (or 5%3) is  2.
  12209.     In other words, 3  goes into 5 one  time (division) with a  remainder of
  12210.     two (modulus).
  12211.  
  12212.     You may  use arithmetic  on any  numeric field  for assignment,  or date
  12213.     field for comparison.  For example, to add 10 minutes to a user's  daily
  12214.     time would be accomplished with:
  12215.  
  12216.        @daily_time = @daily_time + 10
  12217.  
  12218.  
  12219.  
  12220.  
  12221.  
  12222.  
  12223.  
  12224.  
  12225.  
  12226.  
  12227.  
  12228.  
  12229.  
  12230.  
  12231.  
  12232.  
  12233.  
  12234.  
  12235.  
  12236.  
  12237.  
  12238.  
  12239.  
  12240.  
  12241.  
  12242.  
  12243.  
  12244.  
  12245.  
  12246.  
  12247.  
  12248.  
  12249.  
  12250.  
  12251.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12252.  
  12253.  
  12254.  
  12255.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-21
  12256.     Processing a Single User Instead of the Entire Database
  12257.  
  12258.  
  12259.  
  12260.     Instead of looping through every user in the USER database, there may be
  12261.     times you wish to process only a single user instead.  With what  you've
  12262.     learned above,  you know  that we  can check  for a  certain user id and
  12263.     process statements only if that id matches.  If all you wanted to do was
  12264.     process a  single matching  user id,  this method  would be a tremendous
  12265.     waste of  time since  MBBSEXEC would  loop through  every record  in the
  12266.     database, only to process changes for one user.  This Section explains a
  12267.     feature built into MBBSEXEC which will accomplish just that.
  12268.  
  12269.     Single-user processing is  currently limited only  to the USER  database
  12270.     (USER.DAT and USER.KEY files), and must be the FIRST database  processed
  12271.     (won't work if you've processed FILE  or MSG database first in the  same
  12272.     .MEX file).
  12273.  
  12274.     There are 2 ways of accomplishing single-user processing.  The first way
  12275.     is to provide the user's ID number on the #START line.  For example:
  12276.  
  12277.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  12278.        #LOG_FILE: PRN
  12279.        #DATABASE: USER
  12280.  
  12281.        #START 212
  12282.        .
  12283.        .
  12284.        .
  12285.        #STOP
  12286.  
  12287.     The above would process the user with user id 212 only.
  12288.  
  12289.     The second method  is to supply  the user id  to process on  the program
  12290.     command line:
  12291.  
  12292.        MBBSEXEC  UPDT  212
  12293.  
  12294.     which would process the UPDT.MEX file for user id 212 only.  This method
  12295.     works as though you had a statement of:
  12296.  
  12297.        #START 212
  12298.  
  12299.     in your .MEX file.   Remember, single-user processing only works  on the
  12300.     very first #START statement encountered in the .MEX file, and it must be
  12301.     part of  the USER  database -  the FILE,  MSG, RJE  and UTILIZ databases
  12302.     ignore this parameter.
  12303.  
  12304.     One  great  example  of  single-user  processing would be the following:
  12305.     Suppose you  ran a  subscription BBS  and wanted  to update users who've
  12306.     subscribed to  a higher  security level  with more  capabilities on  the
  12307.     system.  Just as  an example, your .MEX  file might look something  like
  12308.     this:
  12309.  
  12310.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  12311.        #LOG_FILE: PRN
  12312.  
  12313.  
  12314.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12315.  
  12316.  
  12317.  
  12318.     Page  9-22                The MBBSEXEC Sysop Maintenance Utility Program
  12319.                      Processing a Single User Instead of the Entire Database
  12320.  
  12321.  
  12322.        #DATABASE: USER
  12323.  
  12324.        #START
  12325.  
  12326.        @level = 50
  12327.        @msg_r_areas = "abcdefghijklmwxz"
  12328.        @msg_w_areas = "abcdefghijklm"
  12329.        @msg_l_areas = "abcdefghijklmz"
  12330.        @file_u_areas = "mn"
  12331.        @file_d_areas = "abcdefghijklmnz"
  12332.        @file_l_areas = "abcdefghijklmnz"
  12333.        @daily_time = 90
  12334.        @periodtype = 'w'
  12335.        @udratio = 0
  12336.  
  12337.        #STOP
  12338.  
  12339.     The above .MEX file would normally loop through the entire USER database
  12340.     and change EVERY  user to the  above criteria since  there are no  IF or
  12341.     GOTO statements in this particular file.  Assuming the above  statements
  12342.     are stored in filename  LVL50.MEX, the following invocation  of MBBSEXEC
  12343.     would in  fact, change  EVERY user  in the  USER database  to the  above
  12344.     criteria:
  12345.  
  12346.        MBBSEXEC  LVL50
  12347.  
  12348.     If the #START  statement in the  LVL50.MEX file had  a number after  it,
  12349.     only the user id matching that number would be processed.
  12350.  
  12351.     However,  the  following  invocation  of  MBBSEXEC would change only one
  12352.     user, user 321 for example:
  12353.  
  12354.        MBBSEXEC  LVL50  321
  12355.  
  12356.     Note that by supplying  a USER id on  the program command line,  it will
  12357.     override  a  hard-coded  user  id  (ie:    one  that's  part of a #START
  12358.     statement).
  12359.  
  12360.     With this crude example, you can  see the power of having separate  .MEX
  12361.     files for different security levels.  To change anyone's security  level
  12362.     at anytime, including all the fields you've associated with a particular
  12363.     security level, simply adapt the above method to your particular needs.
  12364.  
  12365.     This technique can  also be used  in conjunction with  Magnum's @E0 MILC
  12366.     command to update a user ONLINE!
  12367.  
  12368.     Because it's too  easy to accidentally  forget the user-id  parameter on
  12369.     the program line -  a mistake could cause  havoc in your user  database.
  12370.     One  safeguard  against  this  is  to  use  a  .CMD file for all of your
  12371.     single-user updates.  The .CMD file might have a name like UPDT.CMD  and
  12372.     contain the following statements:
  12373.  
  12374.        IF %1 == . GOTO SYNTAX
  12375.  
  12376.  
  12377.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12378.  
  12379.  
  12380.  
  12381.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-23
  12382.     Processing a Single User Instead of the Entire Database
  12383.  
  12384.  
  12385.        IF %2 == . GOTO SYNTAX
  12386.        MBBSEXEC %1 %2
  12387.        GOTO DONE
  12388.        :SYNTAX
  12389.        ECHO USAGE:  UPDT  MEXFILE  USERID
  12390.        :DONE
  12391.  
  12392.     Now, instead  of running  the MBBSEXEC  program directly  to update user
  12393.     321, you'd use the UPDT command file instead:
  12394.  
  12395.        UPDT.CMD  LVL50  321
  12396.  
  12397.     which would be identical to:  MBBSEXEC  LVL50  321
  12398.  
  12399.     However, entering:
  12400.  
  12401.        MBBSEXEC  LVL50
  12402.  
  12403.     would cause complete disaster (forgot the userid), whereas:
  12404.  
  12405.        UPDT  LVL50
  12406.  
  12407.     would echo program usage to you instead of running the MBBSEXEC program.
  12408.  
  12409.  
  12410.  
  12411.  
  12412.  
  12413.  
  12414.  
  12415.  
  12416.  
  12417.  
  12418.  
  12419.  
  12420.  
  12421.  
  12422.  
  12423.  
  12424.  
  12425.  
  12426.  
  12427.  
  12428.  
  12429.  
  12430.  
  12431.  
  12432.  
  12433.  
  12434.  
  12435.  
  12436.  
  12437.  
  12438.  
  12439.  
  12440.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12441.  
  12442.  
  12443.  
  12444.     Page  9-24                The MBBSEXEC Sysop Maintenance Utility Program
  12445.                                                    MBBSEXEC 'Simple' Summary
  12446.  
  12447.  
  12448.     You've now learned the language of MBBSEXEC.  It is a straight  forward,
  12449.     simple programming language with much  power.  The uses for MBBSEXEC are
  12450.     limited only by your imagination.  For example, you could put together a
  12451.     mailing list of all level 10 users, or a mailing list of all people in a
  12452.     certain zipcode.
  12453.  
  12454.     In  addition  to  what  you've  learned,  you  can  also  have  multiple
  12455.     "programs" in the same MBBSEXEC  program file.  For example,  to upgrade
  12456.     all  users  to  level  6  from  level  5 who've entered 2 or more public
  12457.     messages, and delete all callers who haven't called in the past 90 days,
  12458.     AND delete all  messages older than  90 days, AND  change the expiration
  12459.     date of  all files  in area  B to  "06/01/1990", the  following file  of
  12460.     MBBSEXEC statements would accomplish the task:
  12461.  
  12462.        !
  12463.        !   Update Users from level 5 to level 6
  12464.        !
  12465.  
  12466.        #CONFIG_FILE: E:\GS\MAGNUM\PGM_DIR\MBBSINIT.1
  12467.        #LOG_FILE: USER.LOG
  12468.        #DATABASE: USER
  12469.  
  12470.        #START
  12471.  
  12472.        ! Change Level 5 users to 6 if 2 or more public messages entered
  12473.  
  12474.        if (@level != 5) {
  12475.                        goto(skip)
  12476.                        }
  12477.  
  12478.        if (@publm >= 2) {
  12479.                        @level = 6
  12480.                        @daily_time = 45
  12481.                        @file_u_areas="egi"
  12482.                        log("Upgraded from level 5 to 6: /",@ID)
  12483.                        log("Lastname: ",@lastname)
  12484.                        log("Firstname: ",@firstname)
  12485.                        log("# Public Msgs entered: ",@publm)
  12486.                        log("-------------------------------")
  12487.                        }
  12488.  
  12489.        skip:
  12490.  
  12491.        if(@lastcall == 0) {
  12492.                          goto(skip_the_rest)
  12493.                          }
  12494.  
  12495.        if(@lastcall < @today - 90) {
  12496.                       log("deleting due to lack of calls in 90 days: /",@id)
  12497.                       log("Lastname: ",@lastname)
  12498.                       log("Firstname: ",@firstname)
  12499.                       log("Lastcall: ",@lastcall)
  12500.                       @deleted=true
  12501.  
  12502.  
  12503.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12504.  
  12505.  
  12506.  
  12507.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-25
  12508.     MBBSEXEC 'Simple' Summary
  12509.  
  12510.  
  12511.                       log("---------------------------")
  12512.                       }
  12513.  
  12514.        skip_the_rest:
  12515.  
  12516.        #STOP
  12517.  
  12518.        !
  12519.        !----------------- Now process message database ---------------------
  12520.        !
  12521.  
  12522.        #CONFIG_FILE: E:\GS\MAGNUM\PGM_DIR\MBBSINIT.1
  12523.        #LOG_FILE: MSG.LOG
  12524.        #DATABASE: MSG
  12525.  
  12526.        #START
  12527.  
  12528.        ! skip files with existing expiration dates
  12529.  
  12530.        if (@expdate != 0) {
  12531.                          goto(skipexp)
  12532.                          }
  12533.  
  12534.        ! ---------- skip if conference area is the "file description"
  12535.        ! ---------- conference area. This area will vary from installation
  12536.        ! ---------- to installation. In our case, 'X' is our conference
  12537.        ! ---------- area for file descriptions.
  12538.  
  12539.        if (@conf == 'X') {
  12540.                          goto(skipexp)
  12541.                          }
  12542.  
  12543.        if (@date < @today-90 ) {
  12544.                                @deleted = TRUE
  12545.                                log("Deleted Message: ",@filename)
  12546.                                log("Subject: ",@subject)
  12547.                                log("--------------------")
  12548.                                }
  12549.  
  12550.        skipexp:
  12551.  
  12552.        #STOP
  12553.  
  12554.        !
  12555.        !----------------- Now process file database ---------------------
  12556.        !
  12557.  
  12558.        #CONFIG_FILE: E:\GS\MAGNUM\PGM_DIR\MBBSINIT.1
  12559.        #LOG_FILE: FILE.LOG
  12560.        #DATABASE: FILE
  12561.  
  12562.        #START
  12563.  
  12564.  
  12565.  
  12566.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12567.  
  12568.  
  12569.  
  12570.     Page  9-26                The MBBSEXEC Sysop Maintenance Utility Program
  12571.                                                    MBBSEXEC 'Simple' Summary
  12572.  
  12573.  
  12574.        if (@area == 'B') {
  12575.                          @expdate = "06/01/1990"
  12576.                          log("Changed expiration date of: ",@name)
  12577.                          log("Description: ",@brief)
  12578.                          log("---------------------------")
  12579.                          }
  12580.  
  12581.        #STOP
  12582.  
  12583.  
  12584.  
  12585.  
  12586.  
  12587.  
  12588.  
  12589.  
  12590.  
  12591.  
  12592.  
  12593.  
  12594.  
  12595.  
  12596.  
  12597.  
  12598.  
  12599.  
  12600.  
  12601.  
  12602.  
  12603.  
  12604.  
  12605.  
  12606.  
  12607.  
  12608.  
  12609.  
  12610.  
  12611.  
  12612.  
  12613.  
  12614.  
  12615.  
  12616.  
  12617.  
  12618.  
  12619.  
  12620.  
  12621.  
  12622.  
  12623.  
  12624.  
  12625.  
  12626.  
  12627.  
  12628.  
  12629.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12630.  
  12631.  
  12632.  
  12633.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-27
  12634.     MBBSEXEC 'Simple' Summary
  12635.  
  12636.  
  12637.     To  summarize,  MBBSEXEC  is  a  very  powerful,  yet simple programming
  12638.     language.  But you must remember that MBBSEXEC only performs part of the
  12639.     job in some instances.  Anytime you have a statement such as:
  12640.  
  12641.        @deleted = TRUE
  12642.  
  12643.     the actual file or message is  not really deleted - it's only  marked as
  12644.     deleted.  To really  delete the file, you'll  need to log onto  your BBS
  12645.     and go into the  SYSOP menu.  Choose  the [S]tatus of Databases  command
  12646.     which  will  perform  most  of  the  actual  deletions.    Next PACK the
  12647.     databases to finish off the deletions.   Note that the USER database  is
  12648.     not packable. NOTE: YOU MUST BE THE ONLY ONE ONLINE TO PERFORM A PACK OF
  12649.     THE DATABASES!
  12650.  
  12651.     If  you  assign  TRUE  to  @deleted  in  the  USER  database  AND you've
  12652.     configured MAGNUM to reuse deleted  ID's for new users, the  next person
  12653.     that logs on will get that deleted ID.
  12654.  
  12655.     If you  assign TRUE  to @deleted  in the  FILE database,  files will  be
  12656.     deleted whenever someone tries  to do a [L]ist  of the area the  deleted
  12657.     file(s) is in.
  12658.  
  12659.     If you assign  TRUE to @deleted  in the MSG  database, messages are  not
  12660.     deleted unless you  do a [S]tatus  of Databases command  from within the
  12661.     sysop menu, and a Pack on the database.
  12662.  
  12663.     If you assign TRUE to @deleted in the RJE database, that record is  only
  12664.     marked as deleted, not actually  deleted.  There is no  PACKING facility
  12665.     available for  the RJE  database due  to the  nature of the RJEMONIT.EXE
  12666.     daemon process requiring access to the database at any given time!
  12667.  
  12668.     In any event,  [S]tatus of Databases  and Pack commands  from within the
  12669.     Sysop menu will go ahead and perform the actual deletions.
  12670.  
  12671.     IMPORTANT: Running MBBSEXEC.EXE when your BBS is SHUT DOWN (not running)
  12672.                will result in slightly faster execution of MBBSEXEC.EXE.
  12673.  
  12674.     We hope you'll find many good  uses for MBBSEXEC, but you must  remember
  12675.     to make  a backup  of your  *.DAT and  *.KEY files  PRIOR to running any
  12676.     MBBSEXEC programs.  If  you do not have  a backup of your  databases and
  12677.     run into trouble with the MBBSEXEC program then DON'T bother calling  us
  12678.     - there's nothing we can do for you!
  12679.  
  12680.  
  12681.  
  12682.  
  12683.  
  12684.  
  12685.  
  12686.  
  12687.  
  12688.  
  12689.  
  12690.  
  12691.  
  12692.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12693.  
  12694.  
  12695.  
  12696.     Page  9-28                The MBBSEXEC Sysop Maintenance Utility Program
  12697.                                                   MBBSEXEC Advanced Features
  12698.  
  12699.  
  12700.                           MBBSEXEC -- ADVANCED SECTION
  12701.  
  12702.     Up  until  now,  we've  introduced  MBBSEXEC.EXE  to  you  as  a  simple
  12703.     programming language.  If you're  not a programmer, what you've  learned
  12704.     until now should be just enough to get you started writing .MEX programs
  12705.     which  will  suit  your  needs.    However,  if  you  are an experienced
  12706.     programmer, preferably in the C programming language, then you'll  enjoy
  12707.     this "Advanced Features" section. Non-Programmers may choose to omit the
  12708.     remainder of this chapter, but are welcome to continue.
  12709.  
  12710.     With  the  Advanced  features  incorporated  into MBBSEXEC, you can have
  12711.     Nested IF() statements, optional ELSE statements for your IF statements,
  12712.     and WHILE() statements.  Functions  also exist to EXIT() a  .MEX program
  12713.     in progress, get INPUT() from users, and perform logging to the  console
  12714.     with  clog()  statements,  logging  to  a  binary  file  with the blog()
  12715.     statement, or logging to  a string with the  slog() statement.  You  can
  12716.     run external programs  with the SYSTEM()  command, create your  own .MEX
  12717.     functions and CALL() them,  save and restore data  which can be used  by
  12718.     MSESSION and much more!
  12719.  
  12720.     We'll start out describing the easiest statements and techniques for the
  12721.     sake  of  those  new  (or  with  little  exposure)  to  programming, and
  12722.     progressively work our way into more advanced techniques.
  12723.  
  12724.  
  12725.  
  12726.  
  12727.  
  12728.  
  12729.  
  12730.  
  12731.  
  12732.  
  12733.  
  12734.  
  12735.  
  12736.  
  12737.  
  12738.  
  12739.  
  12740.  
  12741.  
  12742.  
  12743.  
  12744.  
  12745.  
  12746.  
  12747.  
  12748.  
  12749.  
  12750.  
  12751.  
  12752.  
  12753.  
  12754.  
  12755.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12756.  
  12757.  
  12758.  
  12759.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-29
  12760.     MBBSEXEC Advanced Features - the EXIT statement
  12761.  
  12762.  
  12763.  
  12764.     You can exit your .MEX file at anytime with the following statement:
  12765.  
  12766.        EXIT(x)
  12767.  
  12768.     where  'x'  is  the  value  to  be  assigned to the exit code upon exit.
  12769.     Whenever an EXIT(x) statement is  executed, MBBSEXEC.EXE will end.   The
  12770.     value of the  exit code (x)  can be tested  for if MBBSEXEC  was started
  12771.     from  a  .CMD  file  (using  the  ERRORLEVEL variable).  A valid EXIT(x)
  12772.     statement might look something like this:
  12773.  
  12774.        EXIT(5)
  12775.  
  12776.     NOTE:  Without  the EXIT(x) function,  MBBSEXEC.EXE always ends  with an
  12777.     exit code of 0 or 1. If it ends with 0, it means everything went ok.  If
  12778.     it ends with 1, it means it terminated due to some error condition  (the
  12779.     cause of  the error  is displayed  upon the  abnormal termination).  You
  12780.     should keep this in mind when using the EXIT(x) function.  For  example,
  12781.     you might want to use EXIT(x) where 'x'  is a value of 2 or above.   The
  12782.     valid range is 0 to 255 and is not checked by the MBBSEXEC program.  You
  12783.     can use a  @TALLYx variable in  place of the  'x' (@TALLYx is  explained
  12784.     later).
  12785.  
  12786.     The EXIT(x) function  is meant to  be used as  part of an  IF statement.
  12787.     For example,  the following  illustrates exiting  the .MEX  file at  the
  12788.     100th record:
  12789.  
  12790.     .
  12791.     .
  12792.     if(@thisrec == 100) {
  12793.                         exit(5)
  12794.                         }
  12795.     .
  12796.     .
  12797.  
  12798.     Naturally, you'll want to exit()  your .MEX program based on  some other
  12799.     meaningful  information,  such  as  finding  the  first  occurence  of a
  12800.     particular last name.  @THISREC used above is explained later.
  12801.  
  12802.  
  12803.  
  12804.  
  12805.  
  12806.  
  12807.  
  12808.  
  12809.  
  12810.  
  12811.  
  12812.  
  12813.  
  12814.  
  12815.  
  12816.  
  12817.  
  12818.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12819.  
  12820.  
  12821.  
  12822.     Page  9-30                The MBBSEXEC Sysop Maintenance Utility Program
  12823.               MBBSEXEC Advanced Features -  Special Fields in USER  database
  12824.  
  12825.  
  12826.  
  12827.                       Special Fields in the USER database
  12828.  
  12829.     Certain fieldnames  of the  USER database  area have  been designated as
  12830.     being "special".  These "special" fields  are those which hold up to  26
  12831.     characters (the letters of the alphabet).  The "special" fields are:
  12832.  
  12833.              @FILE_U_AREAS
  12834.              @FILE_D_AREAS
  12835.              @FILE_L_AREAS
  12836.              @MSG_R_AREAS
  12837.              @MSG_W_AREAS
  12838.              @MSG_L_AREAS
  12839.              @CONFERENCES
  12840.              @FREE_DL_AREAS
  12841.              @DISP_CMDS
  12842.  
  12843.     You've learned how to make simple assignments to these fields with
  12844.     statements such as:
  12845.                            @FILE_D_AREAS = "ABCFGH"
  12846.  
  12847.     With the new enhancement added to this version, you can ADD areas TO  or
  12848.     DELETE  areas  FROM  these  special  fields.   For Example, if the field
  12849.     @FILE_D_AREAS already contains "ABCFGH", and you wish to add areas I and
  12850.     J, you would accomplish it with the following statement:
  12851.  
  12852.                   @FILE_D_AREAS = "+IJ"
  12853.  
  12854.     The value of @FILE_D_AREAS would now contain "ABCFGHIJ".
  12855.  
  12856.     If  you  wish  to  delete  areas  B  and C from @FILE_D_AREAS (assume it
  12857.     currently contains "ABCFGH"), you would accomplish it with the following
  12858.     statement:
  12859.  
  12860.                   @FILE_D_AREAS = "-BC"
  12861.  
  12862.     The value of @FILE_D_AREAS would now contains "AFGH".
  12863.  
  12864.     Summarizing,  if  you  wish  to  assign  to one of these special fields,
  12865.     simply assign as you have in the  past.  However, if you wish to  add to
  12866.     the field,  simply make  the '+'  character the  very first character in
  12867.     your assignment string.  To remove  from the field, simply make the  '-'
  12868.     character the very first character in your assignment string.
  12869.  
  12870.  
  12871.  
  12872.  
  12873.  
  12874.  
  12875.  
  12876.  
  12877.  
  12878.  
  12879.  
  12880.  
  12881.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12882.  
  12883.  
  12884.  
  12885.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-31
  12886.     MBBSEXEC Advanced Features - #LOG_FILE:
  12887.  
  12888.  
  12889.  
  12890.                                    #LOG_FILE:
  12891.  
  12892.     If the parameter to the  #LOG_FILE:  statement is "STDOUT"  (without the
  12893.     quotes) as the name of your log file, then all output will be written to
  12894.     standard output  (the console).   When  written to  standard output, the
  12895.     "Record:    xxx  of  yyy"  display  will  be  supressed,  and if you run
  12896.     MBBSEXEC.EXE as a child process of the BBS, then the remote user will be
  12897.     able  to  view  the  output.    If  running MBBSEXEC.EXE as a standalone
  12898.     program (not from the BBS), if the #LOG_FILE:  is STDOUT, then output is
  12899.     redirectable (ie: with the OS/2 ">" redirection symbol).
  12900.  
  12901.     If the filename supplied to the #LOG_FILE:  statement is appended with a
  12902.     ",A" (without the quotes) after the  filename, it will open up the  file
  12903.     for Append.  For example, the statment:
  12904.  
  12905.                                  #LOG_FILE:  USER.LOG,A
  12906.  
  12907.     will open USER.LOG as the output  file and append its output to  the end
  12908.     of  the  file.    If  the  ",A"  is  omitted,  the file specified in the
  12909.     #LOG_FILE:  statement will be deleted if it exists prior to its use.
  12910.  
  12911.  
  12912.  
  12913.  
  12914.  
  12915.  
  12916.  
  12917.  
  12918.  
  12919.  
  12920.  
  12921.  
  12922.  
  12923.  
  12924.  
  12925.  
  12926.  
  12927.  
  12928.  
  12929.  
  12930.  
  12931.  
  12932.  
  12933.  
  12934.  
  12935.  
  12936.  
  12937.  
  12938.  
  12939.  
  12940.  
  12941.  
  12942.  
  12943.  
  12944.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  12945.  
  12946.  
  12947.  
  12948.     Page  9-32                The MBBSEXEC Sysop Maintenance Utility Program
  12949.               MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  12950.  
  12951.  
  12952.  
  12953.     The  log()  statement  is  the  key  to  generating Mailing Labels, Form
  12954.     Letters and Reports.  To accomplish this, you'll need to become familiar
  12955.     with the enhanced capabilities of the log() statement.
  12956.  
  12957.                       Enhanced LOG statement capabilities:
  12958.  
  12959.     The ENHANCED format of the LOG statement is:
  12960.  
  12961.               LOG(PARM1, PARM2, ... PARMn)
  12962.  
  12963.             where:
  12964.  
  12965.     The PARMx arguments  can consist of  any combination of  field variables
  12966.     relating to the current database and/or quoted strings.
  12967.  
  12968.     Examples:
  12969.  
  12970.             log("Name: ",@lastname,", ",@firstname," ",@middlename)
  12971.             log("  ID: /",@id,"   Last called on ",@lastcall)
  12972.             log("--------------")
  12973.  
  12974.     You can even print mailing labels:
  12975.  
  12976.             log(@firstname," ",@middlename," ",@lastname)
  12977.             log(@street1)
  12978.             log(@street2)
  12979.             log(@city," ",@state,", ",@zip)
  12980.             log(@country)
  12981.             log("")
  12982.  
  12983.     The above assumes 5 printable lines  per label, the  6th line being  the
  12984.     space separating one label from the next.
  12985.  
  12986.     With the  information you've  learned so  far, you  can expand  on these
  12987.     capabilities in  order to  produce form  letters.   A form  letter would
  12988.     typically consist of many log() statements contain quoted strings as the
  12989.     message body, with a few '@' variables thrown in where appropriate.
  12990.  
  12991.     Generally,  form  letters  will  be  written  to users matching specific
  12992.     criteria, skipping those who don't match.  For illustrative purposes,  a
  12993.     simple form letter  generated to all  users of a  subscription board who
  12994.     are about to expire  within the next 30  days might look something  like
  12995.     the following:
  12996.  
  12997.     #CONFIG_FILE: D:\MAGNUM\PGM_DIR\MBBSINIT.1
  12998.     #LOG_FILE: PRN
  12999.     #DATABASE: USER
  13000.  
  13001.     #START
  13002.  
  13003.     if(@memodate1 == 0) {
  13004.                         goto(skipit)
  13005.  
  13006.  
  13007.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13008.  
  13009.  
  13010.  
  13011.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-33
  13012.     MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  13013.  
  13014.  
  13015.                         }
  13016.  
  13017.     if(@today + 30 > @memodate1) {
  13018.       log("")
  13019.       log("")
  13020.       log("")
  13021.       log("")
  13022.       log("")
  13023.       log("    ",@today)
  13024.       log("    ",@firstname," ",@middlename," ",@lastname," (ID: /",@id,")")
  13025.       log("    ",@street1)
  13026.       log("    ",@street2)
  13027.       log("    ",@city," ,",@state," ",@zip)
  13028.       log("")
  13029.       log("")
  13030.       log("    Dear ",@firstname," ",@lastname)
  13031.       log("")
  13032.       log("    Our records show that your BBS subscription is about to")
  13033.       log("    expire on ",@memodate1,".")
  13034.       log("")
  13035.       log("    Don't miss out! Get uninterrupted service by renewing your")
  13036.       log("    BBS Subscription today!")
  13037.       log("")
  13038.       log("")
  13039.       log("    Sincerely,")
  13040.       log("")
  13041.       log("")
  13042.       log("")
  13043.       log("")
  13044.       log("")
  13045.       log("    John Sysop")
  13046.       log("")
  13047.       log(@\12)
  13048.       }
  13049.  
  13050.       @tally1 = @tally1 + 1
  13051.  
  13052.       skipit:
  13053.  
  13054.       if(@thisrec == @hirec) {
  13055.             log(@tally1," letters generated",@\12)
  13056.             }
  13057.  
  13058.     #STOP
  13059.  
  13060.     In the above example, please note that the @\12 parameter translates  to
  13061.     a FormFeed character (tells printer to advance to the top of next page).
  13062.     In order to send  characters to your log  file or device (ie:   printer)
  13063.     which cannot be entered by pressing  a keyboard key, you may still  send
  13064.     that character to the log by using its decimal equivalent.  The  decimal
  13065.     equivalent for FormFeed  is 12, thus  @\12 tells the  log() statement to
  13066.     send a FormFeed to the printer.  The format is the following:
  13067.  
  13068.  
  13069.  
  13070.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13071.  
  13072.  
  13073.  
  13074.     Page  9-34                The MBBSEXEC Sysop Maintenance Utility Program
  13075.               MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  13076.  
  13077.  
  13078.        @\x
  13079.  
  13080.     where 'x' is the decimal equivalent of the character you wish to send to
  13081.     the log.  This is an ideal way to send escape sequences to your  printer
  13082.     in order  to change  fonts, print  size, etc.   For  example, an  escape
  13083.     sequence of "<Esc><Ctrl-X><Ctrl-Y>Hello" would be entered as follows:
  13084.  
  13085.        log(@\27,@\24,@\25,"Hello")
  13086.  
  13087.     The following ADVANCED KEYWORDS allow you to produce reports:
  13088.  
  13089.        @LOREC   - indicates record 0 (the first record in a database)
  13090.        @HIREC   - indicates record X (the  last record in a database)
  13091.        @THISREC - indicates the current record being processed
  13092.        @TALLY0  - Tally counter number 0
  13093.        @TALLY1  - Tally counter number 1
  13094.          .
  13095.          .
  13096.        @TALLY98 - Tally counter number 98
  13097.        @TALLY99 - Tally counter number 99
  13098.  
  13099.     The @TALLYx counters can be used  to count whatever you wish, or  can be
  13100.     used for other purposes such as flags.
  13101.  
  13102.     With the introduction  of the modified/enhanced  LOG statement, you  can
  13103.     actually generate  FORM LETTERS,  and with  the introduction  of the new
  13104.     KEYWORDS above, you can generate detailed reports!
  13105.  
  13106.     Initially, upon start of processing, @LOREC  is set to 0, @HIREC is  set
  13107.     to the highest  record number, @THISREC  varies with the  current record
  13108.     number, and the @TALLYx  counters are set to  0. The @HIREC, @LOREC  and
  13109.     @THISREC variables are to be used for comparisons only, they must not be
  13110.     used as the  target of an  assignment statement.   The @TALLYx variables
  13111.     are to be used however you wish.
  13112.  
  13113.     NOTE: The @LOREC, @HIREC and @THISREC variables are typically used to
  13114.           generate report headers and summaries at the beginning and ending
  13115.           of processing. Please note that the use of these will cause an
  13116.           increase in your processing time!
  13117.  
  13118.     The following example will print  mailing labels for all level  30 users
  13119.     on the system.  When finished with the labels, it will generate a  small
  13120.     report  stating  how  many  mailing  labels  were  generated  and   what
  13121.     percentage of the users  on the system are  at level 30.   Each label is
  13122.     assumed to consist of 5 printable lines, and 1 blank line separating the
  13123.     labels.  The header and summary will each consume 1 label:
  13124.  
  13125.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  13126.        #LOG_FILE: LEVEL30.LOG
  13127.        #DATABASE: USER
  13128.  
  13129.        #START
  13130.  
  13131.  
  13132.  
  13133.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13134.  
  13135.  
  13136.  
  13137.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-35
  13138.     MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  13139.  
  13140.  
  13141.        if(@thisrec == @lorec) {
  13142.                   log("The following is a list of Level 30 Users")
  13143.                   log("")
  13144.                   log("")
  13145.                   log("")
  13146.                   log("")
  13147.                   log("")
  13148.                   }
  13149.  
  13150.                if(@level==30) {
  13151.                   log(@firstname," ",@middlename," ",@lastname)
  13152.                   log(@street1)
  13153.                   log(@street2)
  13154.                   log(@city,", ",@state," ",@zip)
  13155.                   log(@country)
  13156.                   log("")
  13157.                   @tally5 = @tally5 + 1
  13158.                   }
  13159.  
  13160.                @tally9 = @tally9 + 1
  13161.  
  13162.                if(@thisrec == @hirec) {
  13163.                   log("End of list for Level 30 users")
  13164.                   log("There were ",@tally5," users printed")
  13165.                   log(@tally9," total records processed")
  13166.                   @tally5 = @tally5 * 100
  13167.                   @tally0 = @tally5 / @tally9
  13168.                   log(@tally0,"% of the users are at Level 30")
  13169.                   log("")
  13170.                   log("")
  13171.                   }
  13172.  
  13173.                #STOP
  13174.  
  13175.  
  13176.  
  13177.  
  13178.  
  13179.  
  13180.  
  13181.  
  13182.  
  13183.  
  13184.  
  13185.  
  13186.  
  13187.  
  13188.  
  13189.  
  13190.  
  13191.  
  13192.  
  13193.  
  13194.  
  13195.  
  13196.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13197.  
  13198.  
  13199.  
  13200.     Page  9-36                The MBBSEXEC Sysop Maintenance Utility Program
  13201.                MBBSEXEC Advanced Features - Strings, Binary & Console Output
  13202.  
  13203.  
  13204.  
  13205.     Much like the @TALLYx variables available to you, there are also  string
  13206.     variables available to you:
  13207.  
  13208.        @STRING0
  13209.        @STRING1
  13210.           .
  13211.           .
  13212.        @STRING99
  13213.  
  13214.     Each of these variables is capable of holding up to 100 bytes.  You  can
  13215.     assign any other string variables to/from these @STRINGx variables.  You
  13216.     can use these variables however you please.
  13217.  
  13218.     In addition to  the enhanced LOG()  statement, an SLOG()  statement also
  13219.     exists which writes its output to a @STRING variable rather than the log
  13220.     file.  The format is:  SLOG(x,parm1,...,parmn).  It is identical to  the
  13221.     LOG() statement  except that  the first  parameter (x)  tells the SLOG()
  13222.     statement  which  @STRINGx  variable  to  write  to.    For example, the
  13223.     statement:
  13224.  
  13225.            slog(5,@firstname," ",@middlename," ",@lastname)
  13226.  
  13227.     would result  in writing  the above  parameters to  @STRING5.   When the
  13228.     statement completes,  @STRING5 might hold  a value such as "John S Doe".
  13229.     The slog() statement was necessary for this type of combination  because
  13230.     string variables do not have an append operation such as '+'.  Note that
  13231.     a CR/LF  (carriage return/linefeed)  is NOT  appended to  the end of the
  13232.     string. log() statements append a CR/LF to the output. slog() and blog()
  13233.     statements do not.
  13234.  
  13235.     If you wish to  create your own binary  (random access) file as  output,
  13236.     you  can  do  so  with  the  BLOG()  statement.    The BLOG() format is:
  13237.     BLOG(x,parm1,...,parmn).    It  is  identical  to  the writing the LOG()
  13238.     statement except that the first parameter (x) tells the BLOG() statement
  13239.     how many bytes to write.  For example, the statement:
  13240.  
  13241.            blog(50,@firstname," ",@middlename," ",@lastname)
  13242.  
  13243.     would result in writing 50 bytes to the output file (the output file  is
  13244.     the filename in the #LOG_FILE statement).  If the result is longer  than
  13245.     50 bytes, only the first 50  bytes are written.  If the  statement being
  13246.     written is shorter than x,  the difference is padded with  nulls (binary
  13247.     0's).   By using  blog() statements  instead of  log() statements, it is
  13248.     possible to  create your  own binary  (random access)  output files this
  13249.     way.   Note that  CR/LF (carriage  return/linefeed) are  NOT appended to
  13250.     blog() statements.  Only the log() statement appends a CR/LF.
  13251.  
  13252.     When opening an existing binary log  file for append mode, do not  use a
  13253.     ",A" (without quotes) after the #LOG_FILE file name.  Instead, use  ",U"
  13254.     (without quotes)  to indicate  binary update  mode.   This simply  tells
  13255.     MBBSEXEC not to write the "* * * Append * * *" string which it  normally
  13256.     does when ",A" is used.
  13257.  
  13258.  
  13259.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13260.  
  13261.  
  13262.  
  13263.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-37
  13264.     MBBSEXEC Advanced Features - Strings, Binary & Console Output
  13265.  
  13266.  
  13267.  
  13268.     When using  blog() statements,  take care  not to  use log() statements!
  13269.  
  13270.     Note that  the @\x  variable is  available for  log(), slog() and blog()
  13271.     statements.
  13272.  
  13273.     If you wish to print a  message to the console (regardless of  the value
  13274.     of the  #LOG_FILE paramater),  you can  use the  clog() statement.  It's
  13275.     operation is identical  to that of  the log() statement  except that its
  13276.     output always goes to the console, whereas the log() statement's  output
  13277.     always  goes  to  the  file  specified  in the #LOG_FILE statement.  For
  13278.     technical users, the  output of the  clog() statement is  printed to the
  13279.     console via stderr (ie: can be redirected with "2>filename").
  13280.  
  13281.  
  13282.  
  13283.  
  13284.  
  13285.  
  13286.  
  13287.  
  13288.  
  13289.  
  13290.  
  13291.  
  13292.  
  13293.  
  13294.  
  13295.  
  13296.  
  13297.  
  13298.  
  13299.  
  13300.  
  13301.  
  13302.  
  13303.  
  13304.  
  13305.  
  13306.  
  13307.  
  13308.  
  13309.  
  13310.  
  13311.  
  13312.  
  13313.  
  13314.  
  13315.  
  13316.  
  13317.  
  13318.  
  13319.  
  13320.  
  13321.  
  13322.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13323.  
  13324.  
  13325.  
  13326.     Page  9-38                The MBBSEXEC Sysop Maintenance Utility Program
  13327.                           MBBSEXEC Advanced Features - the INPUT() statement
  13328.  
  13329.  
  13330.  
  13331.     Your .MEX programs are capable of interacting with the user in order  to
  13332.     receive user input.  User input can be directed to a @STRINGx or @TALLYx
  13333.     variable.  The format of the INPUT() statement is as follows:
  13334.  
  13335.        INPUT("input text",@TALLYx)      or      INPUT("input text",@STRINGx)
  13336.  
  13337.     When the MBBSEXEC.EXE program executes an input statement, it prints the
  13338.     contents of "input text" on the  console and waits for the user  to type
  13339.     their input.
  13340.  
  13341.     An example of an input() statements follow:
  13342.  
  13343.        input("What is your name => ",@string1)
  13344.        input("How old are you => ",@tally1)
  13345.  
  13346.     Input() statements might  generally be found  in .MEX files  that search
  13347.     for some criteria without  having the need to  edit the .MEX file  every
  13348.     time the  criteria changes.   For  example, to  search for  one or  more
  13349.     occurrences of a  certain last name,  the following statements  might be
  13350.     used:
  13351.  
  13352.        #START
  13353.  
  13354.        if(@thisrec == @lorec) {
  13355.           input("Lastname to Search For => ",@string1)
  13356.           }
  13357.  
  13358.        !
  13359.        ! clog("Comparing ",@\34,@lastname,@\34," and ",@\34,@string1,@\34)
  13360.        !
  13361.  
  13362.        if(@lastname == @string1) {
  13363.           clog("Name: ",@lastname,", ",@firstname," ",@middlename)
  13364.           clog("  ID: /",@id)
  13365.           clog("From: ",@city," ",@state," - ",@country)
  13366.           clog("Last Called on ",@lastcall)
  13367.           clog("- - - - - - - - - - - - - - -")
  13368.           input("Search for Next Occurence (Y/N) => ",@string2)
  13369.           if(@string2 == "N") {
  13370.              exit(0)
  13371.              }
  13372.           }
  13373.  
  13374.        #STOP
  13375.  
  13376.  
  13377.  
  13378.  
  13379.  
  13380.  
  13381.  
  13382.  
  13383.  
  13384.  
  13385.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13386.  
  13387.  
  13388.  
  13389.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-39
  13390.     MBBSEXEC Advanced Features - the WHILE() statement
  13391.  
  13392.  
  13393.  
  13394.     Much like  the IF()  statement, the  WHILE() statement  is identical  in
  13395.     format:
  13396.  
  13397.             IF(expression) {
  13398.                .
  13399.                .
  13400.                }
  13401.  
  13402.             WHILE(expression) {
  13403.                .
  13404.                .
  13405.                }
  13406.  
  13407.     The only difference between the two is that when an IF() statement  ends
  13408.     (matching } found), the program continues with the next statement.  With
  13409.     a  WHILE()  statement,  the  WHILE()  loop  repeats  continuously  until
  13410.     (expression) becomes false.  For exmple:
  13411.  
  13412.        @tally5 = 1
  13413.        while(@tally5 != 0) {
  13414.           input("Enter a number (0 to quit) => ",@tally5)
  13415.           clog("You picked ",@tally5)
  13416.           }
  13417.        clog("Ok - the WHILE() loop is now over!")
  13418.  
  13419.     The reason the WHILE() statement  is similar is because if  (expression)
  13420.     is  TRUE,  then  the  statements  following,  enclosed  in  {  and } are
  13421.     executed.  If  (expression) is FALSE,  program execution continues  with
  13422.     the statement following  the } brace  which matches the  { brace on  the
  13423.     WHILE() line.  The difference between IF() and WHILE() when (expression)
  13424.     is  TRUE  is  that  the  WHILE()  loop repeats itself until (expression)
  13425.     becomes FALSE.  This was easily demonstrated with the example above.
  13426.  
  13427.  
  13428.  
  13429.  
  13430.  
  13431.  
  13432.  
  13433.  
  13434.  
  13435.  
  13436.  
  13437.  
  13438.  
  13439.  
  13440.  
  13441.  
  13442.  
  13443.  
  13444.  
  13445.  
  13446.  
  13447.  
  13448.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13449.  
  13450.  
  13451.  
  13452.     Page  9-40                The MBBSEXEC Sysop Maintenance Utility Program
  13453.                          MBBSEXEC Advanced Features - The } ELSE { statement
  13454.  
  13455.  
  13456.  
  13457.     As mentioned earlier, IF() statements can have matching ELSE statements.
  13458.     The format of an ELSE statement is:
  13459.  
  13460.        } ELSE {
  13461.  
  13462.     all on one line.   Each ELSE matches up with  the matching { of an  IF()
  13463.     statement.    And  because  IF()  statements  can be nested, so can ELSE
  13464.     statements:
  13465.  
  13466.        if(expression) {
  13467.           .
  13468.           .
  13469.           if(expression) {
  13470.                  .
  13471.                  .
  13472.           } else {
  13473.                  .
  13474.                  .
  13475.                  }
  13476.           }
  13477.  
  13478.     With  the  introduction  of  the  ELSE  statement,  we can simplify many
  13479.     things. For example, the following statements:
  13480.  
  13481.        if(@level > 10) {
  13482.           .
  13483.           .
  13484.           goto(done)
  13485.           }
  13486.  
  13487.        .
  13488.        .
  13489.  
  13490.        done:
  13491.  
  13492.     Could be replaced with:
  13493.  
  13494.        if(@level > 10) {
  13495.           .
  13496.           .
  13497.           } else {
  13498.           .
  13499.           .
  13500.           }
  13501.  
  13502.     thus eliminating  the need  for the  GOTO statement  and its  associated
  13503.     label alltogether.
  13504.  
  13505.     NOTE: The   } ELSE {   statement can also be replaced with   ELSE   (no
  13506.           brackets). Should you desire to use ELSE without the brackets,
  13507.           MBBSEXEC.EXE will internally add the brackets for you. Whether you
  13508.           use these brackets or not is entirely up to you. Some people argue
  13509.  
  13510.  
  13511.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13512.  
  13513.  
  13514.  
  13515.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-41
  13516.     MBBSEXEC Advanced Features - The } ELSE { statement
  13517.  
  13518.  
  13519.           that the use of brackets improves readability while others argue
  13520.           that the brackets decrease readability.
  13521.  
  13522.     Nesting levels ( { and } within other  { and } ) can be up to 200 levels
  13523.     deep.  Extreme caution must be taken when using the GOTO statement  when
  13524.     inside a { and }  pair or when branching to  another { and } pair.   For
  13525.     example, in a nested IF ...  ELSE statement, it's ok to issue a GOTO  to
  13526.     a label within the same matching { and } pair.  It's even ok to issue  a
  13527.     GOTO from within a { and }  pair to the main execution part of  the .mex
  13528.     file (ie:   not contained within  a { and  } pair).   However, if you're
  13529.     branching to a label within a { and } pair and the GOTO was issued  from
  13530.     outside that { and } pair, the results will be highly unpredictable.
  13531.  
  13532.           Example:
  13533.  
  13534.               IF(expression) {
  13535.                              .
  13536.                              .
  13537.                              if(expression) {
  13538.                                             .
  13539.                                             badlabel:
  13540.                                             .
  13541.                                             goto(ok1)
  13542.                                             .
  13543.                                             .
  13544.                                             ok1:
  13545.                                             .
  13546.                                             }
  13547.                              .
  13548.                              goto(ok2)
  13549.                              .
  13550.                       } else {
  13551.                              .
  13552.                              goto(badlabel)
  13553.                              .
  13554.                              }
  13555.  
  13556.               ok2:
  13557.  
  13558.     Note the branch to  ok1 is valid because  the label is contained  within
  13559.     the same { and } bracket pair as the goto statement.  The branch to  ok2
  13560.     is valid because the ok2 label is in the main program body (not within a
  13561.     { and } pair.   However, the branch to bad  label goes from one {  and }
  13562.     pair to another { and }  pair and therefore, the results of  this branch
  13563.     will be highly unpredictable.
  13564.  
  13565.  
  13566.  
  13567.  
  13568.  
  13569.  
  13570.  
  13571.  
  13572.  
  13573.  
  13574.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13575.  
  13576.  
  13577.  
  13578.     Page  9-42                The MBBSEXEC Sysop Maintenance Utility Program
  13579.                  MBBSEXEC Advanced Features - Indirect Addressing (Indexing)
  13580.  
  13581.  
  13582.  
  13583.     @TALLYx and @STRINGx statements can  have the 'x' part of  the statement
  13584.     indirectly  addressed  (indexed)  by  another  @TALLYx  variable.    For
  13585.     example, the statements:
  13586.  
  13587.            @TALLY5 = 15
  13588.            @TALLY[5] = @TALLY[5] + 1
  13589.  
  13590.     the  first  statement  assigns  the  value  15  to  @TALLY5.  The second
  13591.     statement indirectly  references @TALLY15  by specifying  [5] instead of
  13592.     using 15  as part  of the  name.   The [5]  specifies to get which tally
  13593.     variable you're looking for from the value stored in @TALLY5.  The  same
  13594.     logic applies  when using  [x] with  @STRINGx.   For example, if @TALLY5
  13595.     holds  the  value  15,  then  @STRING[5]  is  identical  to   specifying
  13596.     @STRING15.
  13597.  
  13598.     Since  it  can  become  confusing  to  use  @TALLYx  statements for your
  13599.     indexes, you may substitute the word @INDEXx in place of @TALLYx.  Using
  13600.     the above example, the following become more readable:
  13601.  
  13602.            @INDEX5 = 15
  13603.            @TALLY[5] = @TALLY[5] + 1
  13604.  
  13605.     MBBSEXEC  internally  converts  @INDEX  to  @TALLY - using either method
  13606.     results in  an identical  result (they  both reference  the same @TALLYx
  13607.     variable).
  13608.  
  13609.     When  using  indirect  addressing,  you  can  also  use   pre-increment,
  13610.     post-increment, pre-decrement, or postdecrement.
  13611.  
  13612.     Examples of Pre-Increment:
  13613.  
  13614.             @INDEX5 = 20
  13615.             log(@TALLY[+5])
  13616.  
  13617.             is identical to:   @TALLY5 = 20
  13618.                                @TALLY5 = @TALLY5 + 1
  13619.                                log(@TALLY21)
  13620.  
  13621.         Examples of Post-Increment:
  13622.  
  13623.             @INDEX5 = 20
  13624.             log(@TALLY[5+])
  13625.  
  13626.             is identical to:   @TALLY5 = 20
  13627.                                log(@TALLY20)
  13628.                                @TALLY5 = @TALLY5 + 1
  13629.  
  13630.     Pre-Decrement  and  Post-Decrement  work  the  same way as the increment
  13631.     operation except that it subtracts 1 instead of adds 1, and the '-' sign
  13632.     is used instead of the '+' sign.
  13633.  
  13634.     You  can  also  use  a  pre-increment  or  pre-decrement operation AND a
  13635.  
  13636.  
  13637.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13638.  
  13639.  
  13640.  
  13641.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-43
  13642.     MBBSEXEC Advanced Features - Indirect Addressing (Indexing)
  13643.  
  13644.  
  13645.     post-increment or a post-decrement operation in the same statement:
  13646.  
  13647.             @TALLY5 = 20
  13648.             log(@TALLY[+5+])
  13649.  
  13650.             is identical to:   @TALLY5 = 20
  13651.                                @TALLY5 = @TALLY5 + 1
  13652.                                log(@TALLY21)
  13653.                                @TALLY5 = @TALLY5 + 1
  13654.  
  13655.     IMPORTANT: "EQUATED" names can NOT use indirect addressing (indexing)!
  13656.  
  13657.  
  13658.  
  13659.  
  13660.  
  13661.  
  13662.  
  13663.  
  13664.  
  13665.  
  13666.  
  13667.  
  13668.  
  13669.  
  13670.  
  13671.  
  13672.  
  13673.  
  13674.  
  13675.  
  13676.  
  13677.  
  13678.  
  13679.  
  13680.  
  13681.  
  13682.  
  13683.  
  13684.  
  13685.  
  13686.  
  13687.  
  13688.  
  13689.  
  13690.  
  13691.  
  13692.  
  13693.  
  13694.  
  13695.  
  13696.  
  13697.  
  13698.  
  13699.  
  13700.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13701.  
  13702.  
  13703.  
  13704.     Page  9-44                The MBBSEXEC Sysop Maintenance Utility Program
  13705.               MBBSEXEC Advanced Features - Equating names for @TALLY/@STRING
  13706.  
  13707.  
  13708.  
  13709.     Because it can be very  frustrating using @STRINGx and @TALLYx  variable
  13710.     names, the EQUATE:  keyword has  been added.  This keyword can  redefine
  13711.     the variable names used so that you can use more meaningful names:
  13712.  
  13713.               EQUATE : USER_NAME_FIELD = @STRING10
  13714.               EQUATE : LEVEL5_COUNTER  = @TALLY42
  13715.  
  13716.     The equated name you plan on using (ie:  USER_NAME_FIELD from the  above
  13717.     example) must follow certain rules:
  13718.  
  13719.        - The name must not exceed 30 characters in length.
  13720.        - The first character must be alphabetic (A-Z) or the '@' character.
  13721.        - The only valid characters in the name are alpha (A-Z), digits (0-9)
  13722.          and the '_' (underscore), '.' (period),  and '@' characters.
  13723.  
  13724.     With the ability to 'equate' your  own variable name with a @STRINGx  or
  13725.     @TALLYx variable, you can have statements such as:
  13726.  
  13727.               user_name_field = @lastname
  13728.               if(@level == 5) {
  13729.                  level5_counter = level5_counter + 1
  13730.                  }
  13731.  
  13732.     which would be identical to:
  13733.  
  13734.               @string10 = @lastname
  13735.               if(@level == 5) {
  13736.                  @tally42 = @tally42 + 1
  13737.                  }
  13738.  
  13739.     Note  that  EQUATE  statements  may  appear  anyplace in your .MEX file,
  13740.     however, you  cannot use  the equated  name in  your file  if it appears
  13741.     before the equate  statement.  The  use of equated  names are to  appear
  13742.     after the equate  statement!  You  can have up  to 200 EQUATE  statments
  13743.     (100 for @TALLY0 thru @TALLY99, and 100 for @STRING0 thru @STRING99).
  13744.  
  13745.     Equated  names  can  NOT  be  indirectly  addressed  (indexed) using the
  13746.     equated  name,  but  can  be  indirectly  addressed  using @STRING[x] or
  13747.     @TALLY[x].
  13748.  
  13749.  
  13750.  
  13751.  
  13752.  
  13753.  
  13754.  
  13755.  
  13756.  
  13757.  
  13758.  
  13759.  
  13760.  
  13761.  
  13762.  
  13763.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13764.  
  13765.  
  13766.  
  13767.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-45
  13768.     MBBSEXEC Advanced Features -Writing/calling your own functions
  13769.  
  13770.  
  13771.  
  13772.     To declare a function anywhere in your .MEX file, it must start with the
  13773.     FSTART:FUNCNAME and end with the FSTOP:FUNCNAME parameter.  Examples:
  13774.  
  13775.                  .
  13776.                  .
  13777.                  FSTART:func1
  13778.                     .
  13779.                     .
  13780.                     .
  13781.                  FSTOP:func1
  13782.                  .
  13783.                  .
  13784.                  FSTART:func2
  13785.                     .
  13786.                     .
  13787.                     .
  13788.                  FSTOP:func2
  13789.                  .
  13790.                  .
  13791.  
  13792.     Function names (ie:  func1, func2, etc) can be any name you wish, up  to
  13793.     30 characters  in length.   During  normal program  execution, functions
  13794.     (program statements appearing between FSTART:funcname and FSTOP:funcname
  13795.     statements) are not executed unless explicitly called.
  13796.  
  13797.     You may declare up to 100 functions in any .MEX program (ie:  up to  100
  13798.     functions between any set of #START and #STOP statements).
  13799.  
  13800.     To call a function from within currently executing program statements:
  13801.  
  13802.                  .
  13803.                  .
  13804.                  CALL(func1)
  13805.                  .
  13806.                  .
  13807.  
  13808.     When MBBSEXEC comes across a  CALL() function, it passes control  to the
  13809.     function being called.  When the function finishes, control is  returned
  13810.     to the next statement after the  CALL() statement.  Calls can be  nested
  13811.     up to 100 levels deep.
  13812.  
  13813.     Optionally, if you have a function name in a @STRINGx variable, you  can
  13814.     use that  @STRINGx variable  as the  parameter to  the CALL()  function.
  13815.     Example:
  13816.  
  13817.                  @STRING5 = "func1"
  13818.                  .
  13819.                  .
  13820.                  CALL(@STRING5)
  13821.                  .
  13822.                  .
  13823.  
  13824.  
  13825.  
  13826.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13827.  
  13828.  
  13829.  
  13830.     Page  9-46                The MBBSEXEC Sysop Maintenance Utility Program
  13831.               MBBSEXEC Advanced Features -Writing/calling your own functions
  13832.  
  13833.  
  13834.     This  capability  can  come  in  handy  when  using  CLOG()  and INPUT()
  13835.     statements to form a menu:
  13836.  
  13837.                  @string1 = "func1"
  13838.                  @string2 = "func2"
  13839.                  @string3 = "func3"
  13840.                  @string4 = "func4"
  13841.  
  13842.                  clog("0 - Exit Program")
  13843.                  clog("1 - Do func1")
  13844.                  clog("2 - Do func2")
  13845.                  clog("3 - Do func3")
  13846.                  clog("4 - Do func4")
  13847.  
  13848.                  @tally0 = 0
  13849.  
  13850.                  while(@tally0 == 0) {
  13851.                     input("Choice (1-4) => ",@tally0)
  13852.                     if(@tally0 == 0) {
  13853.                        exit(2)
  13854.                        }
  13855.                     if(@tally0 > 4) {
  13856.                        @tally0 = 0
  13857.                        }
  13858.                     }
  13859.  
  13860.                  call(@string[0])
  13861.  
  13862.     To terminate a function early (ie:   without processing the rest of  the
  13863.     function statements), you may issue the RETURN command:
  13864.  
  13865.                  fstart:func1
  13866.                     .
  13867.                     .
  13868.                     if(expression) {
  13869.                        return
  13870.                        }
  13871.                     .
  13872.                     .
  13873.                  fstop:func1
  13874.  
  13875.     Alternately, you can set the @RESULTCODE (a read-only variable) with the
  13876.     RETURN statement when using the format:
  13877.  
  13878.                  return(x)
  13879.  
  13880.     where 'x' is a numeric value  to be placed in the @RESULTCODE  variable.
  13881.     'x' can also be a @TALLYx variable.
  13882.  
  13883.     If you  plan on  checking the  value of  the @RESULTCODE  variable after
  13884.     calling a  function, it  must be  tested immediately  after the function
  13885.     call:
  13886.  
  13887.  
  13888.  
  13889.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13890.  
  13891.  
  13892.  
  13893.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-47
  13894.     MBBSEXEC Advanced Features -Writing/calling your own functions
  13895.  
  13896.  
  13897.                  .
  13898.                  .
  13899.                  call(func1)
  13900.                  if(@resultcode == 0) {
  13901.                     .
  13902.                     .
  13903.                     } else {
  13904.                     .
  13905.                     .
  13906.                     }
  13907.                  .
  13908.                  .
  13909.  
  13910.     NOTE:  The RETURN command is to be used only within a function.
  13911.  
  13912.     IMPORTANT: The GOTO() statement, if used within a function, is to
  13913.                 be used ONLY to branch to a label contained within that
  13914.                 function!!
  13915.  
  13916.     NOTE: You can improve performance (ie: speed) of the processing of
  13917.           your .MEX files by using function declarations and function
  13918.           calls. For exmaple, the following code:
  13919.  
  13920.                     if(expression) {
  13921.                                    .
  13922.                                    .
  13923.                                    .
  13924.                                    .
  13925.                                    }
  13926.  
  13927.                  will run slower than:
  13928.  
  13929.                     if(expression) {
  13930.                        call(funca)
  13931.                        }
  13932.  
  13933.     where "funca" would contain  the same code as  is between the braces  of
  13934.     the  "if(expression)"  statement  above.    This is especially true when
  13935.     large numbers  of statements  appear between  the brackets  of the  if()
  13936.     statement.  To clarify this  further, the speed improvement comes  about
  13937.     when  the  if(expression)  statement  evaluates  to  "false".    Because
  13938.     MBBSEXEC is an interpreter, it must read (and ignore) every line of code
  13939.     after the if()  statement until it  finds its matching  brace.  However,
  13940.     with the call()  statement, it's only  one statement which  is read (and
  13941.     ignored)  in  the  case  of  the  if()  statement evaluating to "false".
  13942.  
  13943.  
  13944.  
  13945.  
  13946.  
  13947.  
  13948.  
  13949.  
  13950.  
  13951.  
  13952.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  13953.  
  13954.  
  13955.  
  13956.     Page  9-48                The MBBSEXEC Sysop Maintenance Utility Program
  13957.               MBBSEXEC Advanced Features -Setting the NEXT record to Process
  13958.  
  13959.  
  13960.  
  13961.     The function SETREC(x) sets the next record number to get.  The function
  13962.     only "sets" the next record  but doesn't actually retrieve it  until the
  13963.     #STOP statement is encountered, which forces the read of the next record
  13964.     and executes the code  at the #START statement  again.  The 'x'  portion
  13965.     can be  either a  hard-coded number  or a  @TALLYx variable.   Here's an
  13966.     example of how SETREC(x) might be used:
  13967.  
  13968.         #START
  13969.  
  13970.         if(@tally0 == 0) {
  13971.            clog("Record Range: 0 to ",@hirec)
  13972.            goto(skip_firstime)
  13973.            }
  13974.  
  13975.         clog("ID: /",@id," Name: ",@firstname," ",@middlename," ",@lastname)
  13976.  
  13977.         skip_firstime:
  13978.  
  13979.         @tally0 = 1
  13980.  
  13981.         input("Record number to fetch => ",@tally1)
  13982.         setrec(@tally1)
  13983.  
  13984.         #STOP
  13985.  
  13986.  
  13987.  
  13988.  
  13989.  
  13990.  
  13991.  
  13992.  
  13993.  
  13994.  
  13995.  
  13996.  
  13997.  
  13998.  
  13999.  
  14000.  
  14001.  
  14002.  
  14003.  
  14004.  
  14005.  
  14006.  
  14007.  
  14008.  
  14009.  
  14010.  
  14011.  
  14012.  
  14013.  
  14014.  
  14015.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14016.  
  14017.  
  14018.  
  14019.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-49
  14020.     MBBSEXEC Advanced Features - Executing an External Program
  14021.  
  14022.  
  14023.  
  14024.     You can run an external program by using the SYTEM() call:
  14025.  
  14026.            system("pgmname.exe parm1 parm2")
  14027.  
  14028.     The above example  calls PGMNAME.EXE, passing  it two arguments:   PARM1
  14029.     and PARM2.  The argument to the SYSTEM() command can be within a  quoted
  14030.     string, or can be a @STRINGx variable:
  14031.  
  14032.            @string1 = "pgmname.exe parm1 parm2"
  14033.            system(@string1)
  14034.  
  14035.     The parameter to  the SYSTEM() call  MUST include the  full program name
  14036.     including the .exe extension.   If it is  not in the current  directory,
  14037.     you  should  include  the  complete  filespec  (drive,path,filename  and
  14038.     extension:  "C:\MAGNUM\EXT_DIR\PKUNZIP2.EXE").
  14039.  
  14040.         NOTE: The SYSTEM() command sets the @RESULTCODE (a read-only
  14041.               variable). If you wish to obtain the resultcode, it should be
  14042.               checked immediately following the SYSTEM() call:
  14043.  
  14044.                    system("pgmname.exe parm1 parm2")
  14045.                    if(@resultcode == 1) {
  14046.                       exit(1)
  14047.                       }
  14048.  
  14049.     If the program cannot be found or started, the @RESULTCODE variable will
  14050.     be set to -1.  Otherwise, it will be set to the value the called program
  14051.     sets at termination.
  14052.  
  14053.  
  14054.  
  14055.  
  14056.  
  14057.  
  14058.  
  14059.  
  14060.  
  14061.  
  14062.  
  14063.  
  14064.  
  14065.  
  14066.  
  14067.  
  14068.  
  14069.  
  14070.  
  14071.  
  14072.  
  14073.  
  14074.  
  14075.  
  14076.  
  14077.  
  14078.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14079.  
  14080.  
  14081.  
  14082.     Page  9-50                The MBBSEXEC Sysop Maintenance Utility Program
  14083.                MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data
  14084.  
  14085.  
  14086.  
  14087.     Your .MEX  program can  save its  data (@TALLYx  and @STRINGx)  with the
  14088.     SAVE_DATA(filename)  command.    This  command  saves  the values of all
  14089.     @TALLYx and @STRINGx variables to the file specified by 'filename'.  The
  14090.     'filename' paramater  can be  a quoted  string or  a @STRINGx  variable.
  14091.     Valid Examples:
  14092.  
  14093.            SAVE_DATA("e:\mex1data.var")     or    SAVE_DATA(@STRING5)
  14094.  
  14095.     Once a datafile is saved, it  may no longer be needed when  your program
  14096.     finishes.  For  this reason, we've  added the command  DELETE(filename),
  14097.     which can have the format:
  14098.  
  14099.            DELETE("e:\mex1data.var")   or   DELETE(@STRING5)
  14100.  
  14101.     Your .MEX program can restore the data (@TALLYx and STRINGx)  previously
  14102.     saved  with  the  SAVE_DATA(filename)  command  by  using  the   command
  14103.     RESTORE_DATA(filename).  The 'filename' parameter can be a quoted string
  14104.     or a @STRINGx variable.  Valid Examples:
  14105.  
  14106.            RESTORE_DATA("e:\mex1data.var")     or    RESTORE_DATA(@STRING5)
  14107.  
  14108.     As  before,  when  starting  out  the  MBBSEXEC.EXE  program,  you   can
  14109.     optionally place a userid on the command line after the filename:
  14110.  
  14111.               MBBSEXEC  filename[.mex]  [userid]
  14112.  
  14113.     Now, the syntax is:
  14114.  
  14115.               MBBSEXEC  filename[.mex]  [userid]  [@datafile]
  14116.  
  14117.     If  you  plan  on  using  the  [userid]  parameter, it must be the first
  14118.     paramater  after  the  "filename[.mex]"  parameter.    The   [@datafile]
  14119.     parameter gives  the filespec  of the  datafile to  be loaded (values of
  14120.     @TALLYx  and  @STRINGx  variables)  at  program  startup.   The @ symbol
  14121.     preceeding  the  filename  is  not  part  of the filename, but merely an
  14122.     indication  to  the  MBBSEXEC.EXE  program  that  a  datafile   follows.
  14123.     Examples:
  14124.  
  14125.               MBBSEXEC  LEVEL20  1  @MEXDATA1.VAR
  14126.               MBBSEXEC  REPORT  @MEXDATA2.VAR
  14127.  
  14128.     The datafile is an ASCII text file, whose format is:
  14129.  
  14130.               @TALLY0 = 15
  14131.               @TALLY1 = 3421
  14132.               .
  14133.               .
  14134.               @TALLYn = 0
  14135.               .
  14136.               .
  14137.               @STRING0 = "This is string 0"
  14138.               @STRING1 = "String 1"
  14139.  
  14140.  
  14141.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14142.  
  14143.  
  14144.  
  14145.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-51
  14146.     MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data
  14147.  
  14148.  
  14149.               .
  14150.               .
  14151.               @STRINGn = "String n"
  14152.  
  14153.     You need only specify the variables you wish to be initialized with  the
  14154.     data you provide.   This file  is in the  same format as  the "filename"
  14155.     specified  by  the  SAVE_DATA("filename")  and  RESTORE_DATA("filename")
  14156.     commands,  and  can  also  subsequently  be  used  at  runtime  by   the
  14157.     RESTORE_DATA("filename") command.
  14158.  
  14159.     The SAVE_DATA()  command can  take a  null parameter.   For example, the
  14160.     command SAVE_DATA("")  will save  the data  to the  file from  which the
  14161.     MBBSEXEC.EXE program  was started  with if  the @datafile  parameter was
  14162.     used at startup.  In other words, if MBBSEXEC was started with:
  14163.  
  14164.             MBBSEXEC @mexvars.tmp
  14165.  
  14166.     then  the  SAVE_DATA("")  command  will  is  equivalent  to  issuing the
  14167.     command:
  14168.  
  14169.             SAVE_DATA("mexvars.tmp")
  14170.  
  14171.     Likewise, the command RESTORE_DATA("") is equivalent to:
  14172.  
  14173.             RESTORE_DATA("mexvars.tmp")
  14174.  
  14175.     Utilizing the SAVE_DATA(),  RESTORE_DATA(), and SYSTEM()  commands, it's
  14176.     possible to cross-reference between databases.  For example, if you wish
  14177.     to  Process  the  FILE  database,  but  want  the name of the person who
  14178.     uploaded the file, the .MEX file processing the FILE database would look
  14179.     something like the following:
  14180.  
  14181.              @tally1 = @who
  14182.              save_data("findout.tmp")
  14183.              system("e:\magnum\pgm_dir\mbbsexec.exe findul @findout.tmp")
  14184.              restore_data("findout.tmp")
  14185.              clog("File ",@name, "was uploaded by ",@string1)
  14186.  
  14187.     and the .MEX file called would process the USER database as follows:
  14188.  
  14189.              if(@thisrec == @lorec) {
  14190.                    setrec(@tally1)
  14191.                 } else {
  14192.                    slog(1,@firstname," ",@middlename," ",@lastname)
  14193.                    save_data("")
  14194.                    exit(2)
  14195.               }
  14196.  
  14197.     The data saved by the SAVE_DATA()  command can be read by MSESSION  with
  14198.     the  MILC  command  @&x  which  causes  the  saved values of @TALLYx and
  14199.     @STRINGx  variables  to  be  read/mapped  into  MSESSION's  @Nx  an  @Zx
  14200.     variables.  The RESTORE_DATA() command can read a data file stored  with
  14201.     MSESSION's MILC command @$x which  will read/map MSESSION's @Nx and  @Zx
  14202.  
  14203.  
  14204.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14205.  
  14206.  
  14207.  
  14208.     Page  9-52                The MBBSEXEC Sysop Maintenance Utility Program
  14209.                MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data
  14210.  
  14211.  
  14212.     variables to MBBSEXEC's @TALLYx and @STRINGx variables.  This feature of
  14213.     reading/saving/mapping  MSESSION  and  MBBSEXEC  data  allows  the   two
  14214.     programs  to  communicate  and  provides  for  an  ideal  way of passing
  14215.     information  to/from  MBBSEXEC  if  MSESSION  calls  MBBSEXEC as a child
  14216.     process (door).
  14217.  
  14218.  
  14219.  
  14220.  
  14221.  
  14222.  
  14223.  
  14224.  
  14225.  
  14226.  
  14227.  
  14228.  
  14229.  
  14230.  
  14231.  
  14232.  
  14233.  
  14234.  
  14235.  
  14236.  
  14237.  
  14238.  
  14239.  
  14240.  
  14241.  
  14242.  
  14243.  
  14244.  
  14245.  
  14246.  
  14247.  
  14248.  
  14249.  
  14250.  
  14251.  
  14252.  
  14253.  
  14254.  
  14255.  
  14256.  
  14257.  
  14258.  
  14259.  
  14260.  
  14261.  
  14262.  
  14263.  
  14264.  
  14265.  
  14266.  
  14267.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14268.  
  14269.  
  14270.  
  14271.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-53
  14272.     MBBSEXEC Advanced Features - Sample .MEX Programs
  14273.  
  14274.  
  14275.  
  14276.     The following  demonstrates a  practical use  for a  .MEX program  which
  14277.     searches your  USER database  based on  a lastname  which it prompts you
  14278.     for:
  14279.  
  14280.     #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  14281.     #LOG_FILE: stdout
  14282.     #DATABASE: USER
  14283.  
  14284.     #START
  14285.  
  14286.     if(@thisrec == @lorec) {
  14287.         input("Lastname to Search For => ",@string1)
  14288.         }
  14289.  
  14290.     !
  14291.     ! log("Comparing ",@\34,@lastname,@\34," and ",@\34,@string1,@\34)
  14292.     !
  14293.  
  14294.     if(@lastname == @string1) {
  14295.          log("Name: ",@lastname,", ",@firstname," ",@middlename)
  14296.          log("  ID: /",@id)
  14297.          log("From: ",@city," ",@state," - ",@country)
  14298.          log("Last Called on ",@lastcall)
  14299.          log("- - - - - - - - - - - - - - -")
  14300.          input("Search for Next Occurence (Y/N) => ",@string2)
  14301.          if(@string2 == "N") {
  14302.               exit(5)
  14303.               }
  14304.          }
  14305.  
  14306.     #STOP
  14307.  
  14308.  
  14309.     The following demonstrates a sample .MEX programs which utilize most  of
  14310.     the  techniques  covered  in  the  advanced  section.  The purpose is to
  14311.     provide a sample of how these functions might be put together:
  14312.  
  14313.           !
  14314.           ! Sample .MEX program to provide numbers of how many users are in
  14315.           ! each security level (you need to change the @level statements to
  14316.           ! match your particular system).
  14317.           !
  14318.  
  14319.     #CONFIG_FILE: e:\magnum\pgm_dir\mbbsinit.1
  14320.     #LOG_FILE: FIND.LOG
  14321.     #DATABASE: USER
  14322.  
  14323.     #START
  14324.  
  14325.     !
  14326.     !  Equate our names with MBBSEXEC names for readability
  14327.     !
  14328.  
  14329.  
  14330.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14331.  
  14332.  
  14333.  
  14334.     Page  9-54                The MBBSEXEC Sysop Maintenance Utility Program
  14335.                            MBBSEXEC Advanced Features - Sample .MEX Programs
  14336.  
  14337.  
  14338.  
  14339.     equate :  level5        = @tally1
  14340.     equate :  level6        = @tally2
  14341.     equate :  level10       = @tally3  ! Used for level 10 tally
  14342.     equate :  level15       = @tally4
  14343.     equate :  level20       = @tally5
  14344.     equate :  level30       = @tally6
  14345.     equate :  over_level_30 = @tally7
  14346.     equate :  active_users  = @tally8
  14347.     equate :  deleted_users = @tally9
  14348.     equate :  total_users   = @tally10
  14349.  
  14350.     !
  14351.     ! ---------- DETERMINE - function to determine user level
  14352.     !
  14353.  
  14354.     fstart:determine                 ! function to determine user level
  14355.        if(@level == 5) {             ! check for level 5
  14356.           level5 = level5 + 1        !  increment if true
  14357.        } else {                      ! otherwise
  14358.        if(@level == 6) {             ! check for level 6
  14359.           level6 = level6 + 1
  14360.        } else {
  14361.        if(@level == 10) {
  14362.           level10 = level10 + 1
  14363.        } else {
  14364.        if(@level == 15) {
  14365.           level15 = level15 + 1
  14366.        } else {
  14367.        if(@level == 20) {
  14368.           level20 = level20 + 1
  14369.        } else {
  14370.        if(@level == 30) {
  14371.           level30 = level30 + 1
  14372.        } else {
  14373.        if(@level > 30) {
  14374.           over_level_30 = over_level_30 + 1
  14375.        }
  14376.     fstop:determine                            ! end procedure
  14377.  
  14378.     !
  14379.     ! ------- FINISHUP - function to report results - called at last record
  14380.     !
  14381.  
  14382.     fstart:finishup
  14383.        clog(@\13@\10)
  14384.  
  14385.        clog("Level 5 Users: ",level5)          ! log level5 users
  14386.        clog("Level 6 Users: ",level6)
  14387.        clog("Level 10 Users: ",level10)
  14388.        clog("Level 15 Users: ",level15)
  14389.        clog("Level 20 Users: ",level20)
  14390.        clog("Level 30 Users: ",level30)
  14391.  
  14392.  
  14393.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14394.  
  14395.  
  14396.  
  14397.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-55
  14398.     MBBSEXEC Advanced Features - Sample .MEX Programs
  14399.  
  14400.  
  14401.        clog("Users >Level30: ",over_level_30)
  14402.        clog("- - - - -")
  14403.        clog(" Active Users: ",active_users)
  14404.        clog("Deleted Users: ",deleted_users)
  14405.        clog("  Total Users: ",total_users)
  14406.  
  14407.        log("Level 5 Users: ",level5)
  14408.        log("Level 6 Users: ",level6)
  14409.        log("Level 10 Users: ",level10)
  14410.        log("Level 15 Users: ",level15)
  14411.        log("Level 20 Users: ",level20)
  14412.        log("Level 30 Users: ",level30)
  14413.        log("Users >Level30: ",over_level_30)
  14414.        log("- - - - -")
  14415.        log("Active Users: ",active_users)
  14416.        log("Deleted Users: ",deleted_users)
  14417.        log("  Total Users: ",total_users)
  14418.     fstop:finishup
  14419.  
  14420.     !
  14421.     ! --------- Main Processing (Main Program Body) --------
  14422.     !
  14423.  
  14424.     total_users = total_users + 1
  14425.  
  14426.     if(@deleted == FALSE) {
  14427.        call(determine)
  14428.        active_users = active_users + 1
  14429.        } else {
  14430.        deleted_users = deleted_users + 1
  14431.        }
  14432.  
  14433.     if(@thisrec == @hirec) {
  14434.        call(finishup)
  14435.        exit(5)               ! exit the program with return code of 5
  14436.        }
  14437.  
  14438.     #STOP
  14439.  
  14440.  
  14441.  
  14442.  
  14443.  
  14444.  
  14445.  
  14446.  
  14447.  
  14448.  
  14449.  
  14450.  
  14451.  
  14452.  
  14453.  
  14454.  
  14455.  
  14456.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14457.  
  14458.  
  14459.  
  14460.     Page  9-56                The MBBSEXEC Sysop Maintenance Utility Program
  14461.                                   MBBSEXEC -- Program Summary (All Sections)
  14462.  
  14463.  
  14464.  
  14465.     If you've completed this chapter from  start to finish, then you have  a
  14466.     fairly good grasp  of the endless  capabilities of the  MBBSEXEC program
  14467.     and its power.  Because MBBSEXEC  gets its input from STDIN, and  writes
  14468.     its  output  to  STDOUT  and/or  STDERR,  it  can also be run as a child
  14469.     process (door)  under the  BBS.   This gives  added functionality to the
  14470.     program.
  14471.  
  14472.     The remainder of this chapter summarizes the MBBSEXEC commands.
  14473.  
  14474.                                  General Rules
  14475.  
  14476.        - The .MEX file  must be an  ASCII text file,  created with a  text
  14477.          editor which ends every text line with a CR/LF pair.
  14478.        - No text line may exceed 120 characters.
  14479.        - No .MEX file can exceed 64,000 bytes (filesize).
  14480.        - Maximums: up to 500 Labels
  14481.                    up to 200 brace levels
  14482.                    up to 100 function declarations
  14483.                    up to 100 function call nesting (ie: similar to a stack)
  14484.        - Each { must have a matching } and vice versa.
  14485.        - GOTO restrictions: - If used within a function, the label (target)
  14486.                               must be within that function.
  14487.                             - If used outside of a function, the label
  14488.                               (target) should appear within the same
  14489.                               set of braces.
  14490.                             - Branching to a label in the main program body
  14491.                               (brace level 0) is acceptable anywhere except
  14492.                               from within a function.
  14493.  
  14494.     All .MEX programs start with:
  14495.  
  14496.        #CONFIG_FILE:          Full filespec to MBBSINIT.x
  14497.        #LOG_FILE:             Filespec or devicename to write to (ie: PRN)
  14498.        #DATABASE:             One of USER, FILE, MSG, RJE, UTILIZ
  14499.  
  14500.        #START
  14501.  
  14502.     and end with:
  14503.  
  14504.        #STOP
  14505.  
  14506.     The filename  given in  the #LOG_FILE  statement is  where all  log() or
  14507.     blog() statements are written to.  If ",A" (without the quotes)  follows
  14508.     the filename, the log  file is appended to.   If you plan  on using only
  14509.     blog() statements  and wish  to append  to the  file, use  ",U" (without
  14510.     quotes) after  the filename  instead.   If the  filename is STDOUT, then
  14511.     output will be routed to  the standard output device (console)  and this
  14512.     name should NOT be followed by ",A" or ",U".
  14513.  
  14514.     If processing the USER database,  a record number can optionally  follow
  14515.     the #START  statement.   This will  cause MBBSEXEC  to process only that
  14516.     record number, then terminate the program.
  14517.  
  14518.  
  14519.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14520.  
  14521.  
  14522.  
  14523.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-57
  14524.     MBBSEXEC -- Program Summary (All Sections)
  14525.  
  14526.  
  14527.  
  14528.     All .MEX executable  program statements must  appear between the  #START
  14529.     and #STOP program directives.
  14530.  
  14531.     All .MEX  executable program  statements NOT  appearing between  { and }
  14532.     (beginning and ending braces) or between FSTART and FSTOP are considered
  14533.     to be part of the MAIN PROGRAM BODY.
  14534.  
  14535.     If a syntax or other error occurs while processing your .MEX file  where
  14536.     MBBSEXEC issues a line number referencing the error, MBBSEXEC creates  a
  14537.     numbered file with an extension of .SNP (snapshot) - the line number  in
  14538.     which the error occurred will refer to the line number of the .SNP file.
  14539.     For example, if your program  is UPDATE.MEX and MBBSEXEC terminates  due
  14540.     to an  error on  line 45,  the MBBSEXEC  creates a  numbered file called
  14541.     UPDATE.SNP - line 45 of UPDATE.SNP is where the error occurred.
  14542.  
  14543.     IF() statements and WHILE() statements are of the format:
  14544.  
  14545.        IF(expression) {
  14546.                       .
  14547.                       .
  14548.                       }
  14549.  
  14550.     and
  14551.  
  14552.        WHILE(expression) {
  14553.                          .
  14554.                          .
  14555.                          }
  14556.  
  14557.     The opening brace ( { ) MUST appear on the same text line as the IF() or
  14558.     WHILE() statement itself.  The (expression) part of the IF() or  WHILE()
  14559.     statement  MUST  compare  two  values,  separated  by one of 7 available
  14560.     comparators:
  14561.  
  14562.          ==                 test for equality
  14563.          >=                 test for greater than or equal to
  14564.          <=                 test for less than or equal to
  14565.          !=                 test for not inequality
  14566.          >                  test for greater than
  14567.          <                  test for less than
  14568.          ~                  test for string2 within string1 (strings only)
  14569.  
  14570.     The format of an ELSE statement is:
  14571.  
  14572.          } ELSE {
  14573.     or
  14574.           ELSE
  14575.  
  14576.     if using braces,  they must appear  all on the  same line as  the actual
  14577.     ELSE  statement.    Every  ELSE  statement  MUST  have  a  matching IF()
  14578.     statement.
  14579.  
  14580.  
  14581.  
  14582.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14583.  
  14584.  
  14585.  
  14586.     Page  9-58                The MBBSEXEC Sysop Maintenance Utility Program
  14587.                                   MBBSEXEC -- Program Summary (All Sections)
  14588.  
  14589.  
  14590.     All { and } pairs  must match up (there should  be the same number of  {
  14591.     braces as } braces).
  14592.  
  14593.     Nesting ( { and }  within other { and }  ) must not exceed 200 levels of
  14594.     depth. The MAIN PROGRAM BODY is considered to be level 0.
  14595.  
  14596.     ALL DATES are stored in US  date format (MM/DD/YYYY) and must always  be
  14597.     10 characters in length.   All STRING comparisons against dates  must be
  14598.     in US date format and must always be 10 characters in length.  All  date
  14599.     string assignments  must be  in US  date format  and must  always be  10
  14600.     characters in length.
  14601.  
  14602.     The exclamation  mark (!)  denotes a  comment.   Comments are ignored by
  14603.     MBBSEXEC (stripped out  internally).  A  comment ends when  the physical
  14604.     text line holding the '!' character  ends.  The exclamation mark (!)  is
  14605.     NOT treated as a comment when:
  14606.  
  14607.           - It is immediately followed by an equal sign (!=).
  14608.           - It is enclosed within double quotes ("..!..").
  14609.           - It is immediately preceeded and followed by the single quote
  14610.             character ('!').
  14611.  
  14612.     You can EQUATE (substitute) your  own variable names for any  @TALLYx or
  14613.     @STRINGx variable.  You must EQUATE the name before you can use it.  The
  14614.     format of an EQUATE statement (via examples) are:
  14615.  
  14616.        EQUATE : MY_NAME   = @STRING15
  14617.        EQUATE : TTL_CALLS = @TALLY9
  14618.  
  14619.     The names you  use in your  EQUATEs must not  exceed 30 characters,  and
  14620.     must not contain any characters  other than numeric (0-9), alpha  (A-Z),
  14621.     and the '_', '.'  and '@' characters.   The first character of  the name
  14622.     must be alpha.
  14623.  
  14624.     You  can  write  your  own  functions  by  beginning  your function with
  14625.     FSTART:funcname and ending with FSTOP:funcname. Example:
  14626.  
  14627.          FSTART:print_summary
  14628.            .
  14629.            .
  14630.            .
  14631.          FSTOP:print_summary
  14632.  
  14633.     Program statements appearing within FSTART and FSTOP are never  executed
  14634.     unless explicitly called with the CALL(funcname) parameter.
  14635.  
  14636.                                    Functions
  14637.  
  14638.     CALL(funcname) - Calls a function declared with FSTART/FSTOP. If
  14639.                      the called function issues a RETURN(x) statement,
  14640.                      the value of @RESULTCODE is set and should be
  14641.                      checked immediately after the call if you wish
  14642.                      to obtain the value:
  14643.  
  14644.  
  14645.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14646.  
  14647.  
  14648.  
  14649.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-59
  14650.     MBBSEXEC -- Program Summary (All Sections)
  14651.  
  14652.  
  14653.  
  14654.                           CALL(print_summary)
  14655.                           IF(@resultcode != 0) {
  14656.                                                .
  14657.                                                }
  14658.  
  14659.     BLOG() - Logs (writes) a fixed length record to the #LOG_FILE file.
  14660.              FORMAT:  BLOG(length,parm1[,...parmn])
  14661.                  where 'length' indicates how many bytes to write. If
  14662.                  the total is longer than 'length', it is truncated to
  14663.                  'length'. If shorter than 'length', it is padded with
  14664.                  nulls (binary zeros).
  14665.  
  14666.     CLOG() - Logs (displays) to the console (via STDERR).
  14667.              FORMAT:  CLOG(parm1[,...parmn])
  14668.  
  14669.      LOG() - Logs (writes) a variable length record to the #LOG_FILE file.
  14670.              FORMAT:   LOG(parm1[,...parmn])
  14671.  
  14672.     SLOG() - Logs (writes) a variable length record to a @STRINGx variable.
  14673.              FORMAT:   LOG(x,parm1[,...parmn])
  14674.                  where 'x' indicates which @STRINGx variable to write to.
  14675.  
  14676.     IF() {     - Covered above under 'General Rules'.
  14677.     } ELSE {   - Covered above under 'General Rules'.
  14678.     WHILE() {  - Covered above under 'General Rules'.
  14679.  
  14680.     GOTO(label) - Branch to 'label'. 'label' may appear anywhere in the
  14681.                   file and must not exceed 30 characters. If branching to
  14682.                   'label' from within nested { and } pairs, or branching
  14683.                   to 'label' to within a different { and } pair, the results
  14684.                   will be unpredictable. General rules are:
  14685.  
  14686.                   Branch to level 0 from anywahere is always acceptable
  14687.                   unless the GOTO is issued from within a function (within
  14688.                   FSTART and FSTOP statements).
  14689.  
  14690.                   Branch from level 0 or from within a { and } pair to a
  14691.                   different { and } pair has unpredictable results!
  14692.  
  14693.     LABEL: - Identifies the target of a GOTO statement. LABEL must not
  14694.              exceed 30 characters and must be followed by a colon (:).
  14695.              Up to 500 labels are allowed per .MEX file.
  14696.  
  14697.     EXIT(resultcode) - Causes MBBSEXEC.EXE to end, returning control to the
  14698.                        calling program (or .CMD file). 'resultcode' is the
  14699.                        exit code the program will end with (can be checked
  14700.                        against the ERRORLEVEL command if in a .CMD file).
  14701.                        resultcode should range from 2 to 255. Although
  14702.                        a resultcode of 0 or 1 is acceptible, MBBSEXEC.EXE
  14703.                        normally ends with a 0 or 1 anyway and thus, codes
  14704.                        of 0 or 1 should be avoided.
  14705.  
  14706.  
  14707.  
  14708.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14709.  
  14710.  
  14711.  
  14712.     Page  9-60                The MBBSEXEC Sysop Maintenance Utility Program
  14713.                                   MBBSEXEC -- Program Summary (All Sections)
  14714.  
  14715.  
  14716.     INPUT("input text",@STRINGx) - Displays "input text" and prompts the
  14717.                                    user to enter something. User input is
  14718.                                    stored in variable @STRINGx. Input is
  14719.                                    obtained via STDIN, and can thus be
  14720.                                    redirected if desired.
  14721.  
  14722.     INPUT("input text",@TALLYx) -  Displays "input text" and prompts the
  14723.                                    user to enter something. User input is
  14724.                                    stored in variable @TALLYx. Input is
  14725.                                    obtained via STDIN, and can thus be
  14726.                                    redirected if desired. If an invalid
  14727.                                    number is entered (ie: non-digits), the
  14728.                                    result in @TALLYx will be 0 (zero).
  14729.  
  14730.     RETURN(x) - For function use only. Terminates a currently-executing
  14731.                 function. Sets the value of @RESULTCODE to value 'x'.
  14732.                 'x' can be numeric digits or a @TALLYx variable. The
  14733.                 alternate form of of RETURN(x) is simply RETURN wihout
  14734.                 parens which simply terminates the currently-executing
  14735.                 function but leaves the @RESULTCODE unaltered.
  14736.  
  14737.     SYSTEM("pgmname.exe parms") - Executes an external program. The
  14738.                                   parameter can be a quoted string or
  14739.                                   a @STRINGx variable containing the
  14740.                                   information. The @RESULTCODE variable
  14741.                                   is set after the external program
  14742.                                   finishes and should be checked immediately
  14743.                                   after the SYSTEM() call if you wish to
  14744.                                   obtain the result:
  14745.  
  14746.                                       SYSTEM(@STRING1)
  14747.                                       IF(@RESULTCODE > 0) {
  14748.                                                           .
  14749.                                                           }
  14750.  
  14751.                                   The @RESULTCODE will be -1 if the program
  14752.                                   could not be run (or found).
  14753.  
  14754.     SETREC(x) - Sets the record number of the NEXT record to read (will be
  14755.                 read/processed when the #STOP statement is found). 'x' can
  14756.                 be a number or a @TALLYx variable. The value of 'x' must
  14757.                 fall within 0 and the value of @HIREC.
  14758.  
  14759.     SAVE_DATA("filename") - Saves the values of the 100 @TALLYx and 100
  14760.                             @STRINGx variables to "filename". "filename" can
  14761.                             be in quoted strings or in a @STRINGx variable.
  14762.  
  14763.     RESTORE_DATA("filename") - Restores the values of the @TALLYx and
  14764.                                @STRINGx variables from "filename".
  14765.                                "filename" can be in quoted strings or in a
  14766.                                @STRINGx variable.
  14767.  
  14768.     DELETE("filename") - Deletes "filename" from disk. Filename can be in
  14769.  
  14770.  
  14771.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14772.  
  14773.  
  14774.  
  14775.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-61
  14776.     MBBSEXEC -- Program Summary (All Sections)
  14777.  
  14778.  
  14779.                          quoted strings or in a @STRINGx variable. If a
  14780.                          complete filespec (drive,path,filname.ext) is not
  14781.                          given, the current directory will be assumed.
  14782.  
  14783.     SNAP("filename") - Writes a snapshot of your .MEX program statements to
  14784.                        "filename".
  14785.  
  14786.                               READ-ONLY VARIABLES:
  14787.  
  14788.     @TODAY      - Holds current date.
  14789.     @THISREC    - Holds current record number.
  14790.     @LOREC      - Holds lowest record number - Always 0.
  14791.     @HIREC      - Holds highest record number.
  14792.     @RESULTCODE - Holds result of LAST call to RETURN(x) or SYSTEM(filename)
  14793.  
  14794.                           USER (PROGRAMMER) VARIABLES:
  14795.  
  14796.     @TALLYx  - Holds numeric data. There are 100 tally variables available
  14797.                named @TALLY0 to @TALLY99.
  14798.  
  14799.     @STRINGx - Holds string data. There are 100 string variables available
  14800.                named @STRING0 to @STRING99.
  14801.  
  14802.     @TALLY[x] - Indirectly addresses a tally variable. The tally variable
  14803.                 being indirectly addressed is based on the value of @TALLYx.
  14804.  
  14805.     @STRING[x] -Indirectly addresses a string variable. The string variable
  14806.                 being indirectly addressed is based on the value of @TALLYx.
  14807.  
  14808.         For both @STRING[x] and @TALLY[x] indirect addressing,  the [x]
  14809.         portion can use pre-increment or post-increment ([+x] or [x+]).
  14810.         It can also use pre-decrement or post-decrement ([-x] or [x-]).
  14811.         Optionally,  a  combination of pre/post-increment/decrement can
  14812.         be used ([+x+] or [-x-] or [+x-] or [-x+]).
  14813.         Refer to section on "Indirect Addressing" for more information.
  14814.  
  14815.     You may use the word @INDEX in place of @TALLY (they are interchangeable
  14816.     and refer to the same thing).  @INDEX is internally converted to  @TALLY
  14817.     by MBBSEXEC.
  14818.  
  14819.                         SPECIAL FIELDS IN USER DATABASE
  14820.  
  14821.     The following fields of the USER database are "special":
  14822.  
  14823.          @FILE_U_AREAS   @FILE_D_AREAS   @FILE_L_AREAS
  14824.          @MSG_R_AREAS    @MSG_W_AREAS    @MSG_L_AREAS
  14825.          @CONFERENCES    @FREE_DL_AREAS  @DISP_CMDS
  14826.  
  14827.     These fields hold up to 26  areas (A-Z) each.  Rather than  assigning to
  14828.     these  fields  (overwriting  what's  already  there), you can optionally
  14829.     append or delete areas from these fields.  Example:
  14830.  
  14831.          @FILE_D_AREAS = "+IM"    adds I and M as areas to @FILE_D_AREAS
  14832.  
  14833.  
  14834.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14835.  
  14836.  
  14837.  
  14838.     Page  9-62                The MBBSEXEC Sysop Maintenance Utility Program
  14839.                                   MBBSEXEC -- Program Summary (All Sections)
  14840.  
  14841.  
  14842.          @MSG_R_AREAS  = "-SK"    deletes S and K as areas to @MSG_R_AREAS
  14843.  
  14844.     ---
  14845.                                STARTING MBBSEXEC:
  14846.  
  14847.     MBBSEXEC  filename[.mex]  [userid]  [@datafile]
  14848.  
  14849.     If  you  plan  on  using  the  [userid]  parameter, it must be the first
  14850.     paramater after the "filename[.mex]" parameter and must consist of  only
  14851.     digits.  The [@datafile] parameter gives the filespec of the datafile to
  14852.     be loaded (values of @TALLYx and @STRINGx variables) at program startup.
  14853.     The @ symbol preceeding  the filename is not  part of the filename,  but
  14854.     merely  an  indication  to  the  MBBSEXEC.EXE  program  that  a datafile
  14855.     follows. Examples:
  14856.  
  14857.        MBBSEXEC  filename
  14858.        MBBSEXEC  filename  320
  14859.        MBBSEXEC  filename  @mexdata.var
  14860.        MBBSEXEC  filename  320  @mexdata.var
  14861.  
  14862.  
  14863.  
  14864.  
  14865.  
  14866.  
  14867.  
  14868.  
  14869.  
  14870.  
  14871.  
  14872.  
  14873.  
  14874.  
  14875.  
  14876.  
  14877.  
  14878.  
  14879.  
  14880.  
  14881.  
  14882.  
  14883.  
  14884.  
  14885.  
  14886.  
  14887.  
  14888.  
  14889.  
  14890.  
  14891.  
  14892.  
  14893.  
  14894.  
  14895.  
  14896.  
  14897.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14898.  
  14899.  
  14900.  
  14901.     Magnum Utility Programs                                       Page  10-1
  14902.     STOPMBBS.EXE, STOPRJE.EXE and KILLPROC.EXE
  14903.  
  14904.  
  14905.  
  14906.     All three utility programs are located in your PROGRAM DIRectory.
  14907.  
  14908.     The Magnum utility programs STOPMBBS.EXE and STOPRJE.EXE are mainly  for
  14909.     those users of Magnum on LAN systems.  However, you may benefit from the
  14910.     use of  these programs  even if  you're running  a single-node  BBS on a
  14911.     single computer.
  14912.  
  14913.                                   STOPMBBS.EXE
  14914.  
  14915.     CAUTION:  This program will cause instant termination of ALL sessions,
  14916.               on ALL machines attached to your LAN and without warning to
  14917.               online users! The intent of this program is to keep users
  14918.               offline while a new version of the software is being installed
  14919.               or vast changes are being made by the Sysop.
  14920.  
  14921.     For Instructions on program use, execute STOPMBBS.EXE without parms.  It
  14922.     is  advisable  that  ONLY  the  system  administrator  (for LAN users of
  14923.     Magnum) have a copy of this program.
  14924.  
  14925.  
  14926.                                   STOPRJE.EXE
  14927.  
  14928.     Because the RJEMONIT.EXE program is a daemon process, there's no way to
  14929.     stop it (once its started) short of a system reboot. The STOPRJE.EXE
  14930.     utility program, however, will terminate actively running RJEMONIT.EXE
  14931.     programs on ALL machines.
  14932.  
  14933.     For Instructions on program use, execute STOPRJE.EXE without parms.   It
  14934.     is  advisable  that  ONLY  the  system  administrator  (for LAN users of
  14935.     Magnum) have a copy of this program.
  14936.  
  14937.                                   KILLPROC.EXE
  14938.  
  14939.     Magnum calls  this program  internally, but  you can  benefit from  this
  14940.     program for killing other programs on your system if you know their  PID
  14941.     (Process Identification Numbers).
  14942.  
  14943.     For Instructions on program use, execute KILLPROC.EXE without parms.
  14944.  
  14945.  
  14946.  
  14947.  
  14948.  
  14949.  
  14950.  
  14951.  
  14952.  
  14953.  
  14954.  
  14955.  
  14956.  
  14957.  
  14958.  
  14959.  
  14960.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  14961.  
  14962.  
  14963.  
  14964.  
  14965.  
  14966.  
  14967.  
  14968.  
  14969.  
  14970.  
  14971.  
  14972.  
  14973.  
  14974.  
  14975.  
  14976.  
  14977.  
  14978.  
  14979.  
  14980.  
  14981.  
  14982.  
  14983.  
  14984.  
  14985.  
  14986.  
  14987.  
  14988.  
  14989.  
  14990.  
  14991.                          This Page Intentionally Blank
  14992.  
  14993.  
  14994.  
  14995.     Supplied External and RJE Programs with Magnum BBS            Page  11-1
  14996.  
  14997.  
  14998.                   Supplied External (child or 'door') programs
  14999.  
  15000.     Included with your Magnum BBS package is UTILIZ.EXE -an external program
  15001.     providing useful utilization charts of your system.  The program can  be
  15002.     invoked from the "[D]oor" (child)  selection from the main menu.   Usage
  15003.     of the program  is self-explanatory.   This program uses  information in
  15004.     the UTILIZ.DAT database in your SESSION directory.  This database exists
  15005.     if the TRACK_UTILIZATION parm in your STARTUP.x file(s) is set to Y.
  15006.  
  15007.                              Supplied RJE programs
  15008.  
  15009.     Also included with  your Magnum BBS  package are RJE  programs for POWER
  15010.     (Personal  Offline  Writer  Editor  Reader)  processing.    These can be
  15011.     invoked  from  the  RJE  menu's  "[L]list/Execute" command.  Because RJE
  15012.     processes run  detached in  the background,  the remote  user is free to
  15013.     perform any other BBS function(s) or to log off - the RJE processes will
  15014.     continue to  run until  completed.   POWER processing  allows the remote
  15015.     user to create  a file of  messages on the  system which they  can later
  15016.     download for offline viewing.  When the user has a copy of the POWER.EXE
  15017.     program at  their end,  they can  view, respond  to, and create messages
  15018.     offline at their leisure.  The  next time the remote user logs  on, they
  15019.     can upload  their responses  to the  RJE facility  for processing.   The
  15020.     setup which we've supplied includes 2 RJE utilities:
  15021.  
  15022.         1) MSGLIST.EXE - This program (in conjunction with the ADDRJE.EXE
  15023.                          program) creates a compressed file which the user
  15024.                          can download, containing all messages on the system
  15025.                          of the user's choice (date range & msg areas). At
  15026.                          this time, messages from other Magnum systems are
  15027.                          not supported by this program.
  15028.  
  15029.         2)  RJEPOW.EXE - This program (in conjunction with the GETPOW.EXE
  15030.                          program) allows the remote user to upload pre-
  15031.                          prepared messages (via the POWER.EXE utility pgm
  15032.                          to your system. The RJEPOW.EXE program processes
  15033.                          these messages in the background and places them
  15034.                          in the appropriate message areas on the BBS.
  15035.  
  15036.     Again, both can be invoked from the RJE menu's "[L]ist/Execute" command.
  15037.     For both of the above, your remote users will need a copy of the offline
  15038.     POWER (Personal Offline Writer Editor Reader) program.  This program  is
  15039.     includes POWER.EXE  (DOS) and  POWER2.EXE (OS/2)  for whichever  OS your
  15040.     users are running on when  they decide to use offline  POWER processing.
  15041.     The file POWER3.ZIP is for your remote users to download and use.   This
  15042.     is  on  your  distribution  diskette as A:\MAGNUM\RJE_DIR\POWER3.ZIP and
  15043.     should be 'uploaded' to your file database if you plan on allowing  your
  15044.     users to use this program.  Complete documentation on its use is in  the
  15045.     the .DOC file contained within POWER3.ZIP.
  15046.  
  15047.     You might find  it beneficial to  review the files  CHILDREN.BBS (called
  15048.     when [D]oor  is invoked  from main  menu), and  RJELIST.BBS (called when
  15049.     [L]ist/Execute  is  invoked  from  the  RJE  menu).  These files provide
  15050.     examples  of  how  we've  used  MILC  commands  to produce the resultant
  15051.     interaction between user, BBS and external programs.
  15052.  
  15053.  
  15054.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15055.  
  15056.  
  15057.  
  15058.  
  15059.  
  15060.  
  15061.  
  15062.  
  15063.  
  15064.  
  15065.  
  15066.  
  15067.  
  15068.  
  15069.  
  15070.  
  15071.  
  15072.  
  15073.  
  15074.  
  15075.  
  15076.  
  15077.  
  15078.  
  15079.  
  15080.  
  15081.  
  15082.  
  15083.  
  15084.  
  15085.                          This Page Intentionally Blank
  15086.  
  15087.  
  15088.  
  15089.     The NotePad Facility                                          Page  12-1
  15090.  
  15091.  
  15092.  
  15093.     Magnum incorporates a NotePad facility.   Although not obvious from  the
  15094.     menus,  you  may  want  to  inform  your  users  about it via one of the
  15095.     HELLOx.BBS files  or via  a message  in an  external menu.   The NotePad
  15096.     serves a variety of purposes for you and your users:
  15097.  
  15098.                            The NotePad as a "NotePad"
  15099.  
  15100.     To  use  the  NotePad  as  merely  a  "NotePad"  (ie:   to make notes to
  15101.     yourself), simply press  <Ctrl-O> (press O  while holding down  the Ctrl
  15102.     key).   You'll be  prompted as  to which  note #  you wish  to create or
  15103.     modify (0-99).   Up to 100  NotePads are allowed  for each user  of your
  15104.     BBS.  If any NotePads already  exist for the user, they'll be  displayed
  15105.     (numbered)  along  with  their  titles  so  that the user can pick which
  15106.     NotePad to read or modify.  If this is the user's first time  depressing
  15107.     <Ctrl-O>, s/he  can create  a note  simply by  picking a  NotePad number
  15108.     (0-99).  In any  case, Magnum will take  the user into the  ANSI message
  15109.     editor and the user can read  and/or modify the NotePad.  The  same ANSI
  15110.     editor is used for creating NotePads as is used for creating messages.
  15111.  
  15112.                 The NotePad as a "Cut & Paste" Tool for Messages
  15113.  
  15114.     When responding to or  reading a message, you  can save the contents  of
  15115.     that message into a NotePad by [R]eplying to that Message with the  ANSI
  15116.     editor.  Once inside the ANSI editor, choose <ESC><ESC> (hit the ESC key
  15117.     twice in succession).  An options menu will appear.  To save the message
  15118.     (or  any  portion  of)  the  message  you're replying to, choose 'ReRead
  15119.     Original Message w/ Marking Facilities'.  Mark the lines of the original
  15120.     message  that  you're  interested  in  and  bring  those lines into YOUR
  15121.     response.  Choose <ESC><ESC> again and choose 'NotePad Facilities'  from
  15122.     the options menu and 'save'  your reply (which now contains  portions of
  15123.     the original message) into your personal NotePad.
  15124.  
  15125.     When creating a message,  you can also bring  in text lines from  any of
  15126.     your NotePads into  your message.   Choose <ESC><ESC> and  then 'NotePad
  15127.     Facilities'.  Follow the appropriate prompts to proceed.
  15128.  
  15129.           The NotePad as a List of User ID's for CC's (Carbon Copies)
  15130.  
  15131.     When entering  a NEW  message, you  can provide  ID numbers  of users to
  15132.     issue  CC's  (Carbon  Copies)  of  your  message  to  when you save your
  15133.     message.  If  you'll be routinely  sending CC's to  a specific group  of
  15134.     users, you can  have one (or  more) of your  NotePads contain a  list of
  15135.     those User ID's.  When  prompted for the ID number  of a user to be  the
  15136.     recipient of a  CC, simply provide  the NotePad number  instead.  Magnum
  15137.     will then use  that NotePad to  read and process  the ID numbers  of the
  15138.     users to  send CC's  to.   To have  a NotePad  contain User ID's, simply
  15139.     create  a  NotePad  (any  NotePad  number  will  do), and provide the ID
  15140.     numbers as follows (via example):
  15141.  
  15142.              /10 /55 /203
  15143.              /44 /8
  15144.  
  15145.     Note that the CC list is  free-form, meaning that you're not limited  to
  15146.  
  15147.  
  15148.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15149.  
  15150.  
  15151.  
  15152.     Page  12-2                                          The NotePad Facility
  15153.  
  15154.  
  15155.     one user id per text line.  The CC list can be used when, after entering
  15156.     a new  message, the  CC prompt  will ask  for who  to send  the CC to as
  15157.     usual.   Instead of  replying with  /id as  in the  past (which is still
  15158.     supported), you can repond with #5 (note the #) to signify to use the CC
  15159.     list contained in note #5.  After CC's have been processed from note #5,
  15160.     the prompt will  re-appear so that  you might enter  additional CC's (or
  15161.     note #'s with CC lists).
  15162.  
  15163.     If you're using the remote mail  facility, the NotePad can also hold  CC
  15164.     lists containing remote addresses!  Unlike normal recipients (as many of
  15165.     the /ID entries per text line as  you wish), a remote user entry is  one
  15166.     per line.  An example CC list ala a notepad might look like:
  15167.  
  15168.             /10  /55  /32
  15169.             $1989070000/0
  15170.             $1989110006/195
  15171.             /34  /404
  15172.  
  15173.     The above would generate CC's to ID 10, 55, 32, 34 and 404 on your  BBS.
  15174.     It would  also generate  CC's to  the Sysop  (/0) of  the Magnum  system
  15175.     having a  serial# of  1989070000 and  to ID  /195 of  the Magnum  system
  15176.     having a serial# of 1989110006.
  15177.  
  15178.  
  15179.  
  15180.  
  15181.  
  15182.  
  15183.  
  15184.  
  15185.  
  15186.  
  15187.  
  15188.  
  15189.  
  15190.  
  15191.  
  15192.  
  15193.  
  15194.  
  15195.  
  15196.  
  15197.  
  15198.  
  15199.  
  15200.  
  15201.  
  15202.  
  15203.  
  15204.  
  15205.  
  15206.  
  15207.  
  15208.  
  15209.  
  15210.  
  15211.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15212.  
  15213.  
  15214.  
  15215.     Setting up Additional Copies of Magnum on your LAN            Page  13-1
  15216.  
  15217.  
  15218.     If this is a 2nd (or 3rd, etc) copy of Magnum BBS that you've  purchased
  15219.     to  allow  for  additional  incoming  dialup  or  'pipe' lines (requires
  15220.     optional 'pipe' module), you'll need to install this additional copy  on
  15221.     a workstation (or server) other than the one your original Magnum BBS is
  15222.     running on.
  15223.  
  15224.     This chapter describes how to set up your additional, serialized copy or
  15225.     copies of  Magnum BBS  on other  workstations and  be able  to share the
  15226.     databases and  files with  your original  Magnum BBS.   If you purchased
  15227.     this additional copy of  Magnum and do NOT  wish to share the  databases
  15228.     and files with your original Magnum BBS, then disregard this chapter.
  15229.  
  15230.     For starters, you'll need to make sure that you supply the serial number
  15231.     of  your  ORIGINAL  Magnum  BBS  (from  your  1st system) in ALL of your
  15232.     STARTUP.x file(s)  for this  additional copy  by specifying  that serial
  15233.     number in the PARENT_SERNUM parameter of your STARTUP.x file(s).  If you
  15234.     do not supply the same serial number as that of your ORIGINAL Magnum BBS
  15235.     diskette (not that  of your new  copy of Magnum),  then you will  not be
  15236.     able  to  share  the  databases  and  damage  may occur to your original
  15237.     databases.
  15238.  
  15239.     In  addition  to  setting  up  the  same  serial  number as that of your
  15240.     ORIGINAL  (first)  Magnum  BBS  system,  you'll  need  to  set  up   the
  15241.     workstation that you'll be installing  the additional copy of Magnum  on
  15242.     to  be  able  to  share  (have  READ/WRITE access) to ALL subdirectories
  15243.     specified in your STARTUP.x file(s) for your original Magnum System.
  15244.  
  15245.     For each STARTUP.* file which exists, bring the file into your  favorite
  15246.     text  editor  and  modify  the  following  such  that  it  points to the
  15247.     subdirectories matching that of the server:
  15248.  
  15249.         PROGRAM_DIR:   *** (Cannot be shared! Must be unique to add'l copy)
  15250.         SESSION_DIR:
  15251.         BULLETIN_DIR:
  15252.         MENU_DIR:
  15253.         HELP_DIR:
  15254.         DISPLAY_DIR:
  15255.         EXTERNAL_DIR:
  15256.         RJE_DIR:
  15257.         MSG_DIR:
  15258.         WORK_DIR:      *** (Cannot be shared! Must be unique for EVERY node)
  15259.         USERS_DIR:
  15260.         SYSOUT_DIR:    *** (Cannot be shared! Must be unique to addl' copy)
  15261.         ;
  15262.         ; ------ File Directories
  15263.         ;
  15264.         FILEDIR_A:
  15265.         FILEDIR_B:
  15266.         FILEDIR_C:
  15267.         FILEDIR_D:
  15268.         FILEDIR_E:
  15269.         FILEDIR_F:
  15270.         FILEDIR_G:
  15271.         FILEDIR_H:
  15272.  
  15273.  
  15274.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15275.  
  15276.  
  15277.  
  15278.     Page  13-2            Setting up Additional Copies of Magnum on your LAN
  15279.  
  15280.  
  15281.         FILEDIR_I:
  15282.         FILEDIR_J:
  15283.         FILEDIR_K:
  15284.         FILEDIR_L:
  15285.         FILEDIR_M:
  15286.         FILEDIR_N:
  15287.         FILEDIR_O:
  15288.         FILEDIR_P:
  15289.         FILEDIR_Q:
  15290.         FILEDIR_R:
  15291.         FILEDIR_S:
  15292.         FILEDIR_T:
  15293.         FILEDIR_U:
  15294.         FILEDIR_V:
  15295.         FILEDIR_W:
  15296.         FILEDIR_X:
  15297.         FILEDIR_Y:
  15298.         FILEDIR_Z:
  15299.  
  15300.     For example, if the Server (original Magnum installation) designates its
  15301.     SESSION_DIR as:
  15302.  
  15303.        E:\MAGNUM\SES_DIR
  15304.  
  15305.     then your workstation's path (additional copy of Magnum) might look
  15306.     something like:
  15307.  
  15308.        S:\MAGNUM\SES_DIR
  15309.  
  15310.     or whatever letter on your server is designated to match the same  drive
  15311.     letter that the server uses to house the session directory.
  15312.  
  15313.     The  PROGRAM_DIR,  WORK_DIR,  and  SYSOUT_DIR  must  NOT  use  the  same
  15314.     directories as designated by the server or any other workstation.   EACH
  15315.     WORKSTATION  MUST  HAVE  ITS  OWN,  UNIQUE  PROGRAM_DIR,  WORK_DIR   and
  15316.     SYSOUT_DIR  directory  names!    You  may  have to manually create these
  15317.     subdirectories on your workstation as well as supply those same names as
  15318.     pathnames for their respective keywords in your STARTUP.* files.
  15319.  
  15320.     The PROGRAM_DIR  is the  directory where  you've installed  (or plan  to
  15321.     install your additional copy of Magnum).
  15322.  
  15323.     Note that ALL BBS functions  are supported (as in your  original Magnum)
  15324.     with the exception of  Group Chat.  Chat  is currently limited to  those
  15325.     logged onto the same machine (being defined as the machine in which  the
  15326.     MBBS.EXE program is running on).  In other words, if you have the 9-node
  15327.     version (for  example) on  your Server,  and the  9-node version on your
  15328.     workstation,  only  the  9-nodes  of  each  machine can be used for Chat
  15329.     within the same group of 9-nodes.
  15330.  
  15331.  
  15332.  
  15333.  
  15334.  
  15335.  
  15336.  
  15337.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15338.  
  15339.  
  15340.  
  15341.     Setting up Additional Copies of Magnum on your LAN            Page  13-3
  15342.     Remapping Directories for your Workstation
  15343.  
  15344.  
  15345.     Remapping of  directories is  recommended.   Unless you're  running on a
  15346.     LAN, remapping of directories  will be of little  to no use to  you.  To
  15347.     perform remapping of directories, create  a file (node specific) in  the
  15348.     PROGRAM DIRectory of  your workstation called  REMAPDIR.x (where 'x'  is
  15349.     the node#).  The format of this ASCII text file is:
  15350.  
  15351.               oldpath = newpath
  15352.  
  15353.     Wherever  'oldpath'  is  found,  it  will  be  replaced  with 'newpath'.
  15354.     Example:
  15355.  
  15356.               D:\MAGNUM\ATM = M:\FONT\ATM
  15357.               D:\MAGNUM\ANNOUNCE = X:\BBS\NOTICES
  15358.  
  15359.     Using  the  above,  a  filename  of d:\magnum\announce\meeting.txt would
  15360.     become  x:\bbs\notices\meeting.txt  -  the  actual  filename.ext doesn't
  15361.     change, only the directory path housing that filename.ext changes.
  15362.  
  15363.     Server  /  netnames  are  also  allowed.    For  example,  the following
  15364.     statement is also valid:
  15365.  
  15366.               D:\MAGNUM\ATM = \\SERVER1\DRIVEX\FONTS\ATM
  15367.  
  15368.     Note that both 'oldpath'  and 'newpath' are limited  to a maximum of  65
  15369.     characters each.
  15370.  
  15371.     You may have as many text lines as you wish in this file.
  15372.  
  15373.         NOTE: The intention of remapping is NOT to provide a 'quick & dirty'
  15374.               override to the directory path names you defined in your
  15375.               STARTUP.x file(s), but to override any hard-coded directory
  15376.               names in your displayable files! For example, files which
  15377.               "include" other files (with MILC @Ix command) would only work
  15378.               properly on the server machine (on a network). Although the
  15379.               remapping function DOES provide a 'quick & dirty' override to
  15380.               the directory path names defined in your STARTUP.x file(s), we
  15381.               advise extreme caution when doing so. You should NEVER remap
  15382.               the SESSION or PROGRAM directories!
  15383.  
  15384.     In  addtion  to  MSESSION.EXE,  the  following  programs  also   observe
  15385.     remapping:    MBBSEXEC,  MSGLIST,  RJEPOW.    REMAPDIR.x  must be in the
  15386.     PROGRAM DIRectory  of each  workstation, and  must remap  to the  proper
  15387.     places  in  order  for  the  'extended  msgbase' and 'extended filebase'
  15388.     optional modules to work properly.  Also, remapping is required for  the
  15389.     'compressed message list' function of the RJE menu to work.
  15390.  
  15391.     Note  that  MBBS.EXE  and  all  other  .EXE's  not  listed  in the above
  15392.     paragraph do NOT observe remapping.  Once again, if you're not running a
  15393.     LAN, re-mapping will be  of little to no  use to you.
  15394.  
  15395.  
  15396.  
  15397.  
  15398.  
  15399.  
  15400.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15401.  
  15402.  
  15403.  
  15404.  
  15405.  
  15406.  
  15407.  
  15408.  
  15409.  
  15410.  
  15411.  
  15412.  
  15413.  
  15414.  
  15415.  
  15416.  
  15417.  
  15418.  
  15419.  
  15420.  
  15421.  
  15422.  
  15423.  
  15424.  
  15425.  
  15426.  
  15427.  
  15428.  
  15429.  
  15430.  
  15431.                          This Page Intentionally Blank
  15432.  
  15433.  
  15434.  
  15435.     For Systems using 'Extended File' and/or 'Extended MsgBase'   Page  14-1
  15436.  
  15437.  
  15438.  
  15439.     The 'user' fields  FILEBASE and MSGBASE  indicate the LAST  FileBase and
  15440.     MsgBase the user was  in.  The next  time the user logs  on, Magnum will
  15441.     automatically change to these bases.
  15442.  
  15443.     The fields  FILEGRP and  MSGGRP in  every user's  records add  even more
  15444.     flexibility  to  the  extended  MsgBase  and  extended FileBase modules.
  15445.     Until now, access to certain  File and Msg Bases were  determined solely
  15446.     by security level.  With the FILEGRP and MSGGRP fields, each user can be
  15447.     assigned  to  a  File  Group  or  Msg  Group  (think  of these groups as
  15448.     profiles).  By way  of example, let's suppose  that you set up  John Doe
  15449.     (ID:  /10)  such that his  FILEGRP is 3  (you can do  this by pulling up
  15450.     record 10 of the User database area of the Sysop menu when logged on  as
  15451.     Sysop and changing his FILEGRP to 3; or you can write a .MEX program  to
  15452.     perform bulk updates).  Regardless, assuming that John Doe (ID:  /10) is
  15453.     assigned to FileGrp 3. This means that Magnum will look in your  SESSION
  15454.     DIRectory for a file  by the name of  FILE3.GRP and if it  finds it, the
  15455.     contents  of  this  ASCII  text  file  will override the security levels
  15456.     imposed by the FILEBASE.EXE program when you set up your FileBases.   If
  15457.     Magnum doesn't find FILE3.GRP, Magnum will  act as it did prior to  this
  15458.     version:  it  determines access to  the different FileBases  by means of
  15459.     security levels set by the FILEBASE.EXE program.  Assuming that the file
  15460.     FILE3.GRP exists, the contents might look like the following:
  15461.  
  15462.        ;
  15463.        ; Definitions file for File Group 3
  15464.        ;
  15465.        ; Users assigned to File Group 3 have access to these File Bases
  15466.        ; regardless of Security Level.
  15467.        ;
  15468.        1 RWL ; Los Angeles OS/2 User Group.. Override Read/Write/List Access
  15469.        2 RL ; OS/2 2.0.......................... Override Read/List Access
  15470.        38 L ; California Real Estate............ Override List Access
  15471.        224 ; New York Real Estate............... No Override
  15472.  
  15473.     As you may have  guessed from the above  sample file, the semicolon  (;)
  15474.     denotes the beginning of a comment.   A comment starts with a  semicolon
  15475.     and lasts until  the end of  that text line.   Blank lines  are ignored.
  15476.     The above sample  allows all users  who's FILEGRP field  is set to  3 to
  15477.     have access to FileBases 1, 2, 38 and 224.  The comments (ie:  New  York
  15478.     Real Estate) are merely comments and may or may not have anything to  do
  15479.     with the content of  the actual FileBase denoted  by that number.   If R
  15480.     appears,  READ  (or  download)  access  will  be  given to this FileBase
  15481.     regardless of the READ security level set with the FILEBASE.EXE program.
  15482.     If W appears, WRITE  (or upload) access will  be given to this  FileBase
  15483.     regardless  of  the  WRITE  security  level  set  with  the FILEBASE.EXE
  15484.     program.   If L  appears, LIST  access will  be given  to this  FileBase
  15485.     regardless of the LIST security level set with the FILEBASE.EXE program.
  15486.  
  15487.     Likewise, the MSGGRP field works in an identical fashion except that  it
  15488.     expects to find its  information in MSG3.GRP if  3 were assigned to  the
  15489.     MSGGRP field of a particular user.
  15490.  
  15491.     NOTE1: The FILEGRP and MSGGRP fields override the ability to ACCESS
  15492.  
  15493.  
  15494.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15495.  
  15496.  
  15497.  
  15498.     Page  14-2   For Systems using 'Extended File' and/or 'Extended MsgBase'
  15499.  
  15500.  
  15501.            FileBases and MsgBases which the user would not ordinarily have
  15502.            access to. Furthermore, the .GRP file containing the definitions
  15503.            of a group, can override READ(download), WRITE(upload) and LIST
  15504.            security levels. Note that if a dependency on MEMODATE1 or
  15505.            MEMODATE2 exists within a particular FileBase (as set by
  15506.            FILEBASE.EXE), these  parameters will override it!
  15507.  
  15508.     NOTE2: Although you don't need to use groups at all, the use of such
  15509.            groups will definitely demonstrate a speed increase in the
  15510.            presentation of the different FileBases and MsgBases for the user
  15511.            to choose from.
  15512.  
  15513.     NOTE3: For those Sysops running the type of board where each user
  15514.            represents a different company for example, they might want to
  15515.            set up their BBS such that these users only have access to one
  15516.            particular FileBase and one particular MsgBase. Let's suppose
  15517.            that users of XYZ Corp are assigned FileBase 5 and MsgBase 8.
  15518.            The Sysop could then assign 5 to their FILEBASE and 8 to their
  15519.            MSGBASE. Furthermore, the Sysop could disable the "[F]ileBase
  15520.            Change" and "[M]sgBase Change" menu selections by raising the
  15521.            security level of these menu choices to one higher than these
  15522.            users. This, in effect, insures that users of XYZ Corp will
  15523.            only see (and know about) FileBase 5 and MsgBase 8.
  15524.  
  15525.  
  15526.  
  15527.  
  15528.  
  15529.  
  15530.  
  15531.  
  15532.  
  15533.  
  15534.  
  15535.  
  15536.  
  15537.  
  15538.  
  15539.  
  15540.  
  15541.  
  15542.  
  15543.  
  15544.  
  15545.  
  15546.  
  15547.  
  15548.  
  15549.  
  15550.  
  15551.  
  15552.  
  15553.  
  15554.  
  15555.  
  15556.  
  15557.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15558.  
  15559.  
  15560.  
  15561.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-1
  15562.  
  15563.  
  15564.  
  15565.                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  15566.                   -------------------------------------------
  15567.  
  15568.     AMMO (Automated Magnum Mailer Option)  is built into Magnum systems  and
  15569.     allows the Sysop the option  of implementing this capability.   The term
  15570.     AMMO refers to the  link level layer of  Magnum systems, while the  term
  15571.     RMAIL refers to  the user level  layer.  When  we speak of  AMMO in this
  15572.     chapter,  it will  be about setting  up and using  this option from  the
  15573.     Sysop's point of view.  When we speak of RMAIL in this document, it will
  15574.     be about using the 'remote  mail' facility of Magnum from  your caller's
  15575.     point of view.
  15576.  
  15577.                                     Introduction:
  15578.                                     -------------
  15579.  
  15580.     As  Sysops,  we're  all  familiar  with  the callers (users) of your BBS
  15581.     dialing in  with their  modems (or  pipe modules),  going to the message
  15582.     section, and reading their mail, responding to their mail, and  entering
  15583.     new mail.  It's  very similar to inter-office  mail at a company.   With
  15584.     the introduction of RMAIL (remote mail), the callers (users) of your BBS
  15585.     can now do the same thing but are no longer limited to the users of your
  15586.     BBS.  They can exchange messages with remote users of remote Magnum  BBS
  15587.     systems!    The  same  features  that  exist  currently (receipts, CC's,
  15588.     message forwarding,  private mail,  public mail,  messages to  ALL) also
  15589.     exist with RMAIL.   Just like mailing a  letter via the postal  service,
  15590.     the user needs to know the address  of someone on a remote system.   The
  15591.     address is composed of 2 things:  the remote system's serial number, and
  15592.     the remote user's ID number on that system.  An RMAIL address looks like
  15593.     the following:
  15594.  
  15595.        $1989070000/0
  15596.  
  15597.     The $ character  specifices that this  is RMAIL (not  local mail).   The
  15598.     1989070000 number happens to be the serial number of the Gilmore Systems
  15599.     BBS located in Thousand Oaks, California.  The /0 is the user id of  the
  15600.     Sysop at that system.  In this case, the Sysop is Chuck Gilmore.  So the
  15601.     above address is actually the  address of Chuck Gilmore at  his Thousand
  15602.     Oaks BBS.
  15603.  
  15604.     Envision that each Magnum System is like a city itself.  When you send a
  15605.     letter  to  someone  through  postal  services  (mail),  you include the
  15606.     person's name  and address  on the  envelope, along  with your  name and
  15607.     return  address.    In  the  above  example,  the  Magnum Serial# is the
  15608.     equivalent of the  "city, state, zip  and country" on  the envelope, and
  15609.     the ID of the user on that system you're sending mail to is the person's
  15610.     "name".    Together,  the  serial#  and  name  form  a complete address.
  15611.     Suppose you want to send a  letter to "John Smith" in Chicago.   Knowing
  15612.     that John  smith is  ID /348  on the  Chicago BBS,  his complete address
  15613.     would be  $1991000002/348 ($  specifies RMAIL  followed by  the 10-digit
  15614.     serial#, the  / character  and ID).   The  advantages of  using RMAIL as
  15615.     opposed to postal mail is multi-fold:
  15616.  
  15617.       - You don't need to know city, state, zip, country, etc. The serial#
  15618.  
  15619.  
  15620.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15621.  
  15622.  
  15623.  
  15624.     Page  15-2                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  15625.  
  15626.  
  15627.         is the equivalent of all this information. In most cases, when
  15628.         prompted for serial#, entering the ? character will provide you
  15629.         with a list of serial#'s and a written description.
  15630.       - You don't need to include your 'return address' (Magnum does this
  15631.         for you).
  15632.       - You can compose the message once, then send CC's (carbon copies) to
  15633.         other addresses without having to re-enter the message.
  15634.       - You can request a 'return receipt' to notify you that the message
  15635.         you sent was received by the addressee.
  15636.       - You can rest assured that the message will not get 'lost' or go to a
  15637.         'dead box' due to illegible writing, or that the postal workers will
  15638.         go on strike!
  15639.       - You can even send 'Junk Mail' (goes to every Magnum system on the
  15640.         mail network associated with AMMO).
  15641.       - You can send 'private mail'.
  15642.       - etc, etc.
  15643.  
  15644.     By way of example, let's suppose that you are XYZ Corporation with
  15645.     an office in Los Angeles (USA). XYZ Corporation also has branch offices
  15646.     in Chicago (USA), New York (USA), Tokyo (Japan), London (UK) and
  15647.     Bonn (Germany). Each location is running a Magnum System as follows:
  15648.  
  15649.            Location          Magnum Serial#
  15650.            -------------     --------------
  15651.  
  15652.            Los Angeles       1991000001
  15653.            Chicago           1991000002
  15654.            New York          1991000003
  15655.            London            1991000004
  15656.            Bonn              1991000005
  15657.            Tokyo             1991000006
  15658.  
  15659.     To complicate things further, each location is in a different time zone,
  15660.     thus   making   voice   communications   difficult   in  terms  of  time
  15661.     coordination.  Each location needs to communicate vital information with
  15662.     all other  offices.   In terms  of distance,  The Los  Angeles office is
  15663.     closest to the Chicago office, which in turn is closest to the New  York
  15664.     office, which in turn is closest  to the London office which in  turn is
  15665.     closest to the Bonn office which in turn is closest to the Tokyo  office
  15666.     (the exact order we've  listed them in the  above chart).  Now,  suppose
  15667.     that someone in the New York office needs to get a message to the London
  15668.     office.    They  would  call  the  NY  BBS with their modem or via 'Pipe
  15669.     Module' on  their LAN  and enter  a message  to someone  specific at the
  15670.     London BBS.  At  a predetermined time, the  Magnum system in NY  "calls"
  15671.     the Magnum system in London  and transfers that message (along  with any
  15672.     other messages targeted at the London office from New York); during that
  15673.     same transfer, any mail from the London office targeted to the NY office
  15674.     are also  transfered.   This is  known as  'direct' (or  point-to-point)
  15675.     RMAIL.
  15676.  
  15677.     Now, suppose AMMO links are set up such that the Los Angeles and Chicago
  15678.     offices set up their Magnum systems to exchange mail once (or twice,  or
  15679.     as many times as you wish) every day (or twice a week, or as many  times
  15680.     as you wish).  Likewise, the Chicago and New York offices are set up  to
  15681.  
  15682.  
  15683.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15684.  
  15685.  
  15686.  
  15687.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-3
  15688.  
  15689.  
  15690.     exchange mail at some predermined time schedule.  The same with the  New
  15691.     York<-->London office, the London<-->Bonn office, and the  Bonn<-->Tokyo
  15692.     office.  XYZ Corporation now has RMAIL capabilities from any of their  6
  15693.     offices to any  other of their  6 offices.   In that each  office has an
  15694.     AMMO link between  their neigboring or  closest office, phone  costs are
  15695.     minimized.  Someone in the Bonn office could send someone at the Chicago
  15696.     office a  public (or  private) RMAIL  message by  specifying the Chicago
  15697.     serial# and  the ID  of the  person at  that system.   In  that the Bonn
  15698.     office is linked with the London  office, the message first goes to  the
  15699.     London  office,  then  to  the  New  York  office,  and  finally  to its
  15700.     destination in Chicago.   If it is a  private message, the users  at the
  15701.     London and New York offices will never know about the message.  This  is
  15702.     known as 'indirect' (or 'store-and-forward') RMAIL.
  15703.  
  15704.     If the volume and frequency of mail between the Bonn and Chicago offices
  15705.     are higher  than the  other four,  a direct  link between  the Bonn  and
  15706.     Chicago office can be set up as well as the existing links.  Each Magnum
  15707.     system can  have as  many links  as is  desired, and  can be  set up  to
  15708.     exchange mail as many times as desired with whatever systems it desires!
  15709.  
  15710.     We've    defined     'direct'    (point-to-point),     and    'indirect'
  15711.     (store-and-forward) AMMO capabilities so far.  In our examples, we spoke
  15712.     of  exchanging  mail  to  a  specific  person  (ID)  at  a specific city
  15713.     (serial#).  We also have  BROADCAST capabilities.  A BROADCAST  is where
  15714.     you don't  enter a  message to  a specific  user or  even to  a specific
  15715.     serial#.  You enter a message to ALL, and use the word BROADCAST as  the
  15716.     RMAIL serial#.   This means that  every Magnum system  on the link  will
  15717.     receive  the  BROADCAST  message  and  address  it  to  ALL.   BROADCAST
  15718.     capability is a quick way to post a general message to ALL users on  ALL
  15719.     serial#'s on the AMMO link.  This has advantages and disadvantages.  The
  15720.     advantage to this  should be quite  obvious; the disadvantage  of having
  15721.     MANY systems on the 'link' is  that a BROADCAST message could be  abused
  15722.     and perceived by many  of the users on  other systems as 'junk  mail'...
  15723.     much the same  way as your  receiving 'junk mail'  at your residence  in
  15724.     your mailbox.   There are only  two possible addressee's  of a BROADCAST
  15725.     message:  ALL or SYSOPs.  If SYSOPs, the message is broadcasted only  to
  15726.     the SYSOPs on the AMMO link.
  15727.  
  15728.     In addition  to DIRECT,  INDIRECT, and  BROADCAST mail,  ECHO mail  also
  15729.     exists.  ECHO is  similar to 'store-and-forward', however  ECHO modifies
  15730.     this to  'store-post-and-forward'.   In other  words, if  someone at the
  15731.     Chicago office chooses to send a message to someone at the Bonn  office,
  15732.     the links that it  goes through (New York,  London) will also post  this
  15733.     message on their  systems so that  the users of  their systems can  also
  15734.     read and respond to this message.
  15735.  
  15736.     We've covered  four types  of RMAIL:   DIRECT,  INDIRECT, BROADCAST, and
  15737.     ECHO.   In addition  to the  four types,  all of  the usual  Magnum mail
  15738.     features can  also be  used:   CC's (Carbon  copies), receipts,  message
  15739.     forwarding, etc.  After you create a message, you can send CC's to  both
  15740.     users on the system you've entered  the message on, and to remote  users
  15741.     on remote  systems.   You can  forward a  message to  a user on a remote
  15742.     system.  You can also request a receipt to be generated and sent to  you
  15743.     when  the  addressee  of  a  message  you  sent (either local or remote)
  15744.  
  15745.  
  15746.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15747.  
  15748.  
  15749.  
  15750.     Page  15-4                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  15751.  
  15752.  
  15753.     receives your message.
  15754.  
  15755.     As in the  past, the Notepad  can be used  to contain a  list of CC's to
  15756.     send a  message to  (see the chapter entitled  "The NotePad  Facility").
  15757.     With the  introduction of  RMAIL, the  CC's can  also contain addresses.
  15758.     See the  chapter entitle  "The NotePad  Facility" for  an example of how
  15759.     your users can  use the notepad  to contain CC  lists to both  local and
  15760.     remote users.
  15761.  
  15762.     So far, our example situations  have been with a small,  6-office Magnum
  15763.     network with  only one  or two  links at  each system.   Even this small
  15764.     system  could  have  any  of  its  systems  linked with any other of its
  15765.     systems.  The Tokyo office might open two or three more branches of  XYZ
  15766.     Corp in neighboring cities.  If it has Magnum systems set up in each  of
  15767.     those cities, links from  the Tokyo office could  also be set up  to the
  15768.     other three.   It  can even  exclude those  links from  its Bonn link (a
  15769.     closed local network) as opposed to making it part of the wide network.
  15770.  
  15771.     There is  no limit  as to  how many  systems (serial#'s)  can be  linked
  15772.     together,  and  no  limit  as  to  how  many links each system can have.
  15773.     However, there is a limit of 500 'store-and-forward' serial#'s which can
  15774.     be supported  by each  direct link,  and a  limit of  5,000 messages per
  15775.     transmission.  We  feel that approaching  this limit on  'large' systems
  15776.     would be unlikely.
  15777.  
  15778.     ------------------------------------------------------------------------
  15779.  
  15780.                                 AMMO - Account Setup:
  15781.                                 ---------------------
  15782.  
  15783.     Like your  USER accounts  (each user  has an  ID number  and occupies  a
  15784.     record in your USER database), your MAIL accounts also have an ID number
  15785.     and occupy a record  in your USER database.   A mail account  is an AMMO
  15786.     'LINK' between your system and the system you're setting a LINK with.
  15787.  
  15788.     To set up a mail account (LINK) with another AMMO system, you'll need to
  15789.     coordinate the  effort with  the Sysop  at the  system you'll be linking
  15790.     with.  Using the "Gilmore  Systems BBS" in Southern California  (serial#
  15791.     1989070000)  as  an  example,  and  YOUR  BBS  (assume  your  serial# is
  15792.     1990000000), follow these directions:
  15793.  
  15794.        1) Log onto your own BBS locally (* LOGON at the MBBS "Command => "
  15795.           prompt). Log on as a NEW user with a name something like:
  15796.  
  15797.              Firstname=GILMORE, Middlename=SYSTEMS, Lastname=BBS
  15798.  
  15799.           Choose a password and write it down.
  15800.           Complete the logon procedure, write down the ID number assigned to
  15801.           this account, and log off.
  15802.  
  15803.        2) Call our BBS and leave a message that you'd like to establish an
  15804.           AMMO link with us. Give us:
  15805.  
  15806.              A) Your BBS name.
  15807.  
  15808.  
  15809.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15810.  
  15811.  
  15812.  
  15813.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-5
  15814.  
  15815.  
  15816.              B) The ID number and PASSWORD from step 1.
  15817.              C) Your modem telephone number.
  15818.              D) Preferred days/times you'd like for your system to call
  15819.                 ours (this is optional).
  15820.  
  15821.        3) Call our BBS back in a day or so and we'll have a message for you
  15822.           stating A,B,C and D of step 2 above for the account we've set up
  15823.           for your system.
  15824.  
  15825.        4) Log onto your own BBS locally (* LOGON at the MBBS "Command => "
  15826.           prompt). Log on as SYSOP this time. If you don't have your COLOR
  15827.           settings ON, we suggest you turn them on for this logon.
  15828.  
  15829.              A) Go into the SYSOP Menu, USER database area.
  15830.              B) Pull up the record of the ID number you gave us the day
  15831.                 before.
  15832.              C) Change TYPE to M  (enter the word TYPE and press ENTER;
  15833.                 you'll be prompted for new TYPE; respond with M for MAIL).
  15834.                 After you've changed the TYPE to M, the remaining fields to
  15835.                 fill in will appear in RED.
  15836.              D) Change SYSTEM_SERIAL# (enter the word SYSTEM_SERIAL# and
  15837.                 press ENTER; you'll be prompted for new Serial#;ID;password)
  15838.                 Enter the Serial# of the system you'll be setting up a link
  15839.                 with (in this case, our system), followed by a semicolon,
  15840.                 the ID number we gave you, another semicolon, and the
  15841.                 password we gave you.
  15842.              E) Note that PHONE1 and PHONE2 have been changed to DIALCMD1
  15843.                 and DIALCMD2 for MAIL accounts. These fields should hold the
  15844.                 modem commands necessary to dial the remote BBS with. These
  15845.                 two fields are concatenated (treated as one) when Magnum
  15846.                 dials this account. For example:
  15847.                     DIALCMD1=ATH0S7=60,DT    DIALCMD2=1-818-706-9805
  15848.                 Note the S7=60 portion tells your modem to wait up to 60
  15849.                 seconds for a connection with each dial attempt. AMMO only
  15850.                 tries 20 times before giving up. 20 tries at 60 seconds/try
  15851.                 = 20 minutes.
  15852.              F) Change all other fields in RED color to whatever is
  15853.                 appropriate. Make sure we have access to the message
  15854.                 conferences you wish.
  15855.              G) Assign us to a MSGGRP. For example, MSGGRP of 3 means that
  15856.                 you'll need to create the file MSG3.GRP in your SESSION
  15857.                 DIRectory. If you're NOT using the 'Extended MsgBase'
  15858.                 module, the contents of this file should be one ASCII text
  15859.                 line as follows:
  15860.                    0  RWL ;
  15861.                 This means that we'll have read/write/list access to
  15862.                 MsgBase 0. If you ARE using the 'Extended Msgbase' module,
  15863.                 give us access to the MsgBases you wish us to have access
  15864.                 to. Example:
  15865.                    0 RWL ;
  15866.                    3 RWL ;
  15867.                    157 RWL ;
  15868.              H) Be CERTAIN to change the RMAIL field to Y (yes)!!!!
  15869.              I) Add our Serial# to the AMMO.MAG file in your SESSION
  15870.  
  15871.  
  15872.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15873.  
  15874.  
  15875.  
  15876.     Page  15-6                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  15877.  
  15878.  
  15879.                 DIRectory.
  15880.  
  15881.     If the  file AMMO.MAG  doesn't exist  in your  SESSION DIRectory, you'll
  15882.     need to create it.  Without it, AMMO/RMAIL is "not installed".  This  is
  15883.     an ASCII text file with the following format (via example):
  15884.  
  15885.        1989070000(0):Gilmore Systems Magnum BBS  ; BBS name
  15886.                      1989110006 ; \
  15887.                      1990020045 ;  \ ____ Maximum of 500 supported serial#'s
  15888.                      1992030102 ;  /      accessible to the above as "store
  15889.                      1991050607 ; /       and forward" serial#'s.
  15890.  
  15891.        1989110006(0):TJD Software BBS            ; BBS name
  15892.                      1992030102 ; ----> "store & forward" to this serial#
  15893.  
  15894.        1991020321(22):ABC Corp BBS
  15895.  
  15896.     The number  in parens  indicates which  msgbase incoming  mail from this
  15897.     serial# will be  placed.  If  you are NOT  using the optional  "Extended
  15898.     MsgBase" module, then this number MUST  be 0. The format of the  file is
  15899.     simple:
  15900.  
  15901.         Direct_Link_Serial_Number(MsgBase):BBS NAME       ; Optional Comment
  15902.                      Optional_Store_and_Forward_Serial_Number_1 ; Comment
  15903.                      Optional_Store_and_Forward_Serial_Number_2 ; Comment
  15904.                      Optional_Store_and_Forward_Serial_Number_N ; Comment
  15905.  
  15906.         Next_Direct_Link_Serial_Number(MsgBase):BBSNAME         ; Comment
  15907.               etc, etc, etc
  15908.  
  15909.     Note that normally any  'store-and-forward' links should also  appear as
  15910.     either a 'direct-link' somewhere in the file, or should also appear as a
  15911.     'store-and-forward' link under more than one 'direct-link'.
  15912.  
  15913.     Mail coming in to your BBS from whatever Serial#, will be placed in  the
  15914.     MsgBase specified in parenthesis next to the serial# above.  However, if
  15915.     a 'reply'  to a  message is  coming in,  it will  be placed  in the same
  15916.     MsgBase and conference  area as the  message it's replying  to.  If  any
  15917.     'store-and-forward' serial#'s  are listed  below a  'direct-link' serial
  15918.     number (but  before the  next direct-link  serial#), messages  for those
  15919.     serial#'s will be sent to  the direct-link serial# when connected.   For
  15920.     example, if you're  in New York  and you have  a 'direct link'  with us,
  15921.     then you might consider having 'direct links' with other Magnum  systems
  15922.     in  your  area.    You  could  then  list  those  serial#'s  as optional
  15923.     store-and-forward numbers under the direct link with our serial# so that
  15924.     users of those serial#'s could send us mail via your BBS.
  15925.  
  15926.     Remember,  a  'direct-link'  entry  in  the  AMMO.MAG file consists of a
  15927.     10-digit  serial#,  immediately  followed  by  a MsgBase in parenthesis,
  15928.     which  is  immediately  followed  by  a  colon  (:)  character, which is
  15929.     immediately followed by descriptive text of the BBS.
  15930.  
  15931.     A 'store-and-forward' link entry (a serial# in which messages are stored
  15932.     on your BBS and then forwarded  to a 'direct-link' serial#) is simply  a
  15933.  
  15934.  
  15935.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15936.  
  15937.  
  15938.  
  15939.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-7
  15940.  
  15941.  
  15942.     10-digit  serial#   (and  nothing   else)  which   is  listed   below  a
  15943.     'direct-link' serial# (and before the next 'direct-link' serial#).  Each
  15944.     'direct-link'   serial#   can   be   followed   by   as   many   as  500
  15945.     'store-and-forward'  serial#'s.     When  a  'direct-link'   serial#  is
  15946.     connected  with  your  BBS  for  AMMO  RMAIL exchange, the 'direct-link'
  15947.     serial# receives all mail targeted  for its serial# along with  all mail
  15948.     targeted for  the 'store-and-forward'  serial#'s listed  below it.   Any
  15949.     mail   sent   to   the   'direct-link'   serial#   (including  those  of
  15950.     'store-and-forward') will  be marked  by AMMO  as being  "sent" on  your
  15951.     system, and the 'store-and-forward' messages will be considered "unsent"
  15952.     on the receiving system until they reach their target BBS serial#.
  15953.  
  15954.     IMPORTANT: With the exception of 'replies', Incoming mail will be placed
  15955.                in the MsgBase you provide in parens! The actual Conference
  15956.                Area the message will be placed in will be the same as the
  15957.                conference area on the sending machine (regardless of which
  15958.                MsgBase it's coming from). Therefore, links should have
  15959.                access to ALL conference areas of your incoming MsgBase
  15960.                (A-Z), and ALL conference areas in your MsgBase (whichever it
  15961.                is) should be defined and used! FOR THIS REASON WE STRONGLY
  15962.                RECOMMEND THE 'EXTENDED MSGBASE MODULE'!!
  15963.  
  15964.     NOTE: During mail processing, OUTGOING mail will be named RMnnnnnn.ZIP
  15965.           (in the RMAILOUT directory), and INCOMING mail will be named
  15966.           RMnnnnnn.ZIP (in the RMAILIN directory). Note that nnnnnn will be
  15967.           the userid of the mail account on YOUR system.
  15968.     INFO: The RMAILOUT and RMAILIN directories are created for you
  15969.           automatically. These are subdirectories of the main MSG DIRectory.
  15970.  
  15971.     WARNING: NEVER, NEVER, NEVER GIVE OUT AMMO MAIL ACCOUNT INFORMATION TO
  15972.              ANYONE BUT THE SYSOP OF A MAGNUM SYSTEM YOU'RE ESTABLISHING A
  15973.              DIRECT LINK WITH!!
  15974.  
  15975.  
  15976.                       To start an AMMO exchange of RMAIL:
  15977.                       -----------------------------------
  15978.  
  15979.     There  are  two  ways  of  starting  an  AMMO exchange of RMAIL with any
  15980.     particular link you're set up for:
  15981.  
  15982.         1) Manually
  15983.         2) Automatically
  15984.  
  15985.     With the manual method, enter the command at the MBBS.EXE "Command => "
  15986.     prompt:
  15987.  
  15988.         * RMAIL node:id
  15989.  
  15990.     Let's suppose you've established a  mail account with us.   Suppose that
  15991.     the ID number on your  system that you've set up  for us was /999.   Now
  15992.     suppose that you want Node 2 on your system (or any other MODEM node  on
  15993.     your system)  to perform  an AMMO  RMAIL exchange  with us.   The actual
  15994.     command you'd issue is:
  15995.  
  15996.  
  15997.  
  15998.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  15999.  
  16000.  
  16001.  
  16002.     Page  15-8                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  16003.  
  16004.  
  16005.         * RMAIL 2:999
  16006.  
  16007.     The rest is automatic!   You can walk  away at this point.   Your system
  16008.     will gather up all messages targeted  for our BBS and then call  our BBS
  16009.     using node  2's modem  with the  DIALCMDx information  in account  /999.
  16010.     Your system will  try up to  20 times to  get a connection  with our BBS
  16011.     before it gives up.  If it gets connected, it will log on  automatically
  16012.     and our  BBS will  gather all  mail targeted  for your  system.  The two
  16013.     systems will  then exchange  mail, hang  up, process  mail, and  end the
  16014.     session.   Note that  either of  our systems  can call  the other at any
  16015.     given time.
  16016.  
  16017.     To  automate  the  "*  RMAIL  Node:ID"  command,  simply  put it in your
  16018.     MBBS.ACE file to execute at whatever days you wish, and as many times as
  16019.     you wish.  See the chapter entitled "ACE - Magnum's Event Handler".
  16020.  
  16021.     Typically, busy  systems need  to set  aside times  designated for mail,
  16022.     otherwise  the  mail  account  may  never  make  it online!  This can be
  16023.     accomplished with the "x CALLS  MAIL" command to accept calls  from mail
  16024.     accounts on node x  - all other callers  (user accounts) will be  denied
  16025.     access.  To revert back to normal operations, the command "x CALLS  ALL"
  16026.     must be issued for node x. In this normal mode of operation, Magnum will
  16027.     accept  calls  from  both  Users  and  Mail  accounts.  Once again, this
  16028.     command can be placed in your MBBS.ACE file.
  16029.  
  16030.     After a mail caller calls,  processing of mail begins immediately  after
  16031.     their id and password have been successfully entered.  All usual display
  16032.     of .BBS  files are  omitted, and  "Press Enter..."  prompts are omitted.
  16033.     The entire  process is  automated between  the two  machines.   However,
  16034.     there is one  .BBS file which,  if exists, will  be processed/displayed.
  16035.     This file is RMAIL.BBS  (in the SESSION DIRectory)  if it exists.   This
  16036.     file serves no  real purpose at  this time, but  is reserved for  future
  16037.     expansion.
  16038.  
  16039.     INFO: The "* RMAIL node:id" command actually starts a LOCAL session. You
  16040.           must NOT be online on the local (console) node at the time of this
  16041.           command! AMMO is online on the local (console) node when the RMAIL
  16042.           command is given. It uses the modem and configuration for the
  16043.           'node' number you supplied, therefore, no one must be online on
  16044.           node 'node'. RMAIL only works with 'nodes' (STARTUP.n) that were
  16045.           configured as 8 databits, 1 stop bit, No parity. AMMO assumes a
  16046.           modem with the "AT" command set, although this may not be
  16047.           necessary for proper operation.
  16048.  
  16049.     Entering Messages to Users on Other Systems:
  16050.     --------------------------------------------
  16051.  
  16052.     There are 3 ways to enter a message to users on other systems:
  16053.  
  16054.        1) Use the $ character at the ADDRESSEE prompt (who is msg to?).
  16055.           Enter Serial# at the Serial# prompt (? provides serial# list).
  16056.           Enter /ID of user at that serial#.
  16057.  
  16058.        2) Use the $ character at the ADDRESSEE prompt (who is msg to?).
  16059.  
  16060.  
  16061.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16062.  
  16063.  
  16064.  
  16065.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-9
  16066.  
  16067.  
  16068.           Enter BROADCAST at the Serial# prompt.
  16069.           Enter ALL or SYSOPs.
  16070.           This method will broadcast your message to all systems allowed to
  16071.           exchange messages with the system you entered the message on. In
  16072.           turn, these systems will broadcast your message to all systems
  16073.           allowed to exchange messages with their systems, etc. This will
  16074.           get your message onto many systems very quickly.
  16075.  
  16076.        3) When reading a message from a remote system/user (FROM field
  16077.           starts with the $ character), choose [R]eply at the message
  16078.           disposition prompt. Simply reply to the message as you would any
  16079.           other message.
  16080.  
  16081.     Tech Note:
  16082.     ----------
  16083.  
  16084.     With the advent  of 'remote mail'  capabilities in conjunction  with the
  16085.     ability for  the sysop  to select  the MILC  command character for their
  16086.     system, you  may be  wondering if  messages using  MILC commands  on one
  16087.     system are executable on other systems... especially if the two  systems
  16088.     are  using  different  MILC  command  characters!    The  answer is YES.
  16089.     Regardless of the MILC command character, any message that works on  the
  16090.     originating system will also work  on any other system when  transferred
  16091.     via remote mail.  However, the commands that are available  (executable)
  16092.     in a remote  message (one received  from another system)  are limited to
  16093.     the MILC commands  you specify in  the DISP_CMDS parm  of your STARTUP.n
  16094.     file for that node.
  16095.  
  16096.  
  16097.  
  16098.  
  16099.  
  16100.  
  16101.  
  16102.  
  16103.  
  16104.  
  16105.  
  16106.  
  16107.  
  16108.  
  16109.  
  16110.  
  16111.  
  16112.  
  16113.  
  16114.  
  16115.  
  16116.  
  16117.  
  16118.  
  16119.  
  16120.  
  16121.  
  16122.  
  16123.  
  16124.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16125.  
  16126.  
  16127.  
  16128.  
  16129.  
  16130.  
  16131.  
  16132.  
  16133.  
  16134.  
  16135.  
  16136.  
  16137.  
  16138.  
  16139.  
  16140.  
  16141.  
  16142.  
  16143.  
  16144.  
  16145.  
  16146.  
  16147.  
  16148.  
  16149.  
  16150.  
  16151.  
  16152.  
  16153.  
  16154.  
  16155.                          This Page Intentionally Blank
  16156.  
  16157.  
  16158.  
  16159.     Closing Remarks                                               Page  16-1
  16160.  
  16161.  
  16162.     Congratulations!   You've just  completed reading  the documentation for
  16163.     the Gilmore Systems  Magnum BBS System  for OS/2.   We hope that  you'll
  16164.     have many years of ongoing satisfaction with this product.  If you  have
  16165.     any problems, please leave them in the form of a "[C]omment to Sysop" or
  16166.     message on our BBS at (818) 706-9805.   We will have a response for  you
  16167.     usually within 24 hours.
  16168.  
  16169.     ALL TECHNICAL SUPPORT QUESTIONS AND PROBLEMS WILL BE HANDLED EXCLUSIVELY
  16170.     VIA OUR BBS  AT (818) 706-9805.   IF YOU  CALL ON OUR  VOICE LINE WITH A
  16171.     TECHNICAL SUPPORT  QUESTION OR  PROBLEM WHICH  REQUIRES US  TO CALL  YOU
  16172.     BACK, WE WILL CALL YOU BACK COLLECT!  HAVE YOUR SERIAL NUMBER READY (YOU
  16173.     WILL BE ASKED FOR IT).
  16174.  
  16175.     We've set up a special section  on our BBS for Magnum Sysops  (file area
  16176.     'S' and message conference area 'S').  This will enable you to  converse
  16177.     with other Magnum Sysops, exchange ideas and information, ask questions,
  16178.     etc.  We encourage regular checking in from time to time.  Other  Sysops
  16179.     have  already  wrote  some  external  programs  for Magnum which they've
  16180.     uploaded (you can download these  anytime).  If you wish  information on
  16181.     the record layouts  for Magnum's databases,  please inquire within  - we
  16182.     encourage  3rd  party  development,  but  do  not  support it (3rd party
  16183.     developers must support their own products).
  16184.  
  16185.     So far, Magnum BBS will run with almost any modem.  Your modem should be
  16186.     capable of  hardware flow  control (CTS/RTS)  and your  modem cable must
  16187.     have RS-232  pin numbers  4 and  5 wired  to carry  these signals - some
  16188.     cables are not wired this way.  This is especially the case when the DTE
  16189.     baudrate (the speed  of computer to  modem) is higher  than that of  the
  16190.     modem's DCE  baudrate (the  speed of  the modem  over the  phone lines).
  16191.     Some internal  modems force  the carrier  signal high  (constantly on) -
  16192.     your modem needs to report carrier to Magnum in a realtime fashion  (the
  16193.     true state of the carrier signal - for modems with the "AT" command set,
  16194.     this is  usually accomplished  with the  &C1 command).   Your modem must
  16195.     also be configured to respond to  the DTR signal - in other  words, when
  16196.     Magnum closes  the comport,  your modem  should respond  by dropping the
  16197.     line - if your modem uses the  "AT" command set, see the &Dn command  in
  16198.     your modem's user manual.  For modems with the "AT" command set, see the
  16199.     S10  register  in  order  to  make  your  modem drop the connection when
  16200.     carrier is lost.
  16201.  
  16202.     Keeping things  in perspective,  your modem  is your  computer and BBS's
  16203.     only  link  to  the  outside  world.    It is important that you not cut
  16204.     corners in this arena.  Magnum BBS and your modem(s) have a  synergistic
  16205.     relationship and we suggest  you use a name  brand modem which has  been
  16206.     successfully used in the public arena for a long time.
  16207.  
  16208.     The  STARTUP.1  file  included  with  your  shipment  contains the modem
  16209.     sequences for the MultiTech 224E 2400-baud modem with a DTE speed locked
  16210.     at 9600 baud.
  16211.  
  16212.     The  STARTUP.2  file  included  with  your  shipment  contains the modem
  16213.     sequences for the USRobotics  HST dual-standard modem (9600/14400  baud)
  16214.     with a DTE speed locked at 19200 baud.
  16215.  
  16216.  
  16217.  
  16218.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16219.  
  16220.  
  16221.  
  16222.     Page  16-2                                               Closing Remarks
  16223.  
  16224.  
  16225.     The  STARTUP.3  file  included  with  your  shipment  contains the modem
  16226.     sequences for the Hayes V.42 9600-baud modem with a DTE speed locked  at
  16227.     19200 baud.  THIS IS EXPERIMENTAL (we only had this modem for 30 days).
  16228.  
  16229.     Other  modem  startup  strings,  etc,  are  supplied  in  a  file called
  16230.     MODEMS.TXT on your distribution disk.
  16231.  
  16232.     Also on your distribution disk, is a file called MAGNUM.H which are  the
  16233.     structure layouts  (in C)  of the  databases used  by Magnum (USER, MSG,
  16234.     RJE,  FILE,  UTILIZ).    With  this  information  you may write your own
  16235.     programs to manipulate the databases used by Magnum.  By all means, give
  16236.     us a call if you have ANY questions or concerns about accessing the data
  16237.     in these databases.  Should  you write programs which actually  WRITE to
  16238.     or  APPEND  to   these  databases,  be   sure  to  adhere   to  standard
  16239.     record-locking  conventions.    If  you'll  be  appending  to  the  USER
  16240.     database, give us a call for important information you'll need to know -
  16241.     it's not  as simple  as just  "appending" a  record (all other databases
  16242.     EXCEPT the USER database are straight-forward if appending).
  16243.  
  16244.                              IMPORTANT CONSIDERATIONS:
  16245.                              ------------------------
  16246.  
  16247.     ALWAYS, ALWAYS have a backup copy of your databases prior to running the
  16248.     MBBSEXEC.EXE program.  Any errors (ie:  typos, logic, etc) in your  .MEX
  16249.     files can ruin your  databases!  We're running  our system such that  an
  16250.     "ACE"  command  starts  a  .cmd  file  which  copies  the databases to a
  16251.     different  directory  prior  to  running  the  mbbsexec.exe  program for
  16252.     maintenance.  If you're writing  a new '.mex' file, you  should consider
  16253.     setting up a test system to test it out with - do not experiment on your
  16254.     production system without full backups of the databases!
  16255.  
  16256.     Magnum uses  variables @Z0,  @Z1, @N0  and @N1  internally when invoking
  16257.     external   programs   such   as   pkzip2.exe,   pkunzip2.exe,  arc2.exe,
  16258.     chkansi.exe, etc... bear this  in mind when using  the @R1, @Fx and  @Qx
  16259.     MILC commands.
  16260.  
  16261.     Be advised that the RJE menu's [K]ill option will only kill the  program
  16262.     it started - not any children of that program.
  16263.  
  16264.                IMPORTANT INFORMATION ABOUT COM0x.SYS DEVICE DRIVERS:
  16265.                ----------------------------------------------------
  16266.  
  16267.       If you're running OS/2 SE 1.2 or OS/2 EE 1.2 on an IBM PS/2 machine:
  16268.  
  16269.     The COM02.SYS device  driver may or  may not work  with your version  of
  16270.     OS/2 1.2.  To  find out if your  COM02.SYS driver is the  proper one for
  16271.     your system,  execute the  following command  (comes with  the Operating
  16272.     System):
  16273.  
  16274.           SYSLEVEL.EXE
  16275.  
  16276.     After a couple of minutes, you'll  get the CSD level.  For  OS/2 version
  16277.     1.2 SE, the CSD level should be XR04073  or  greater.  For  OS/2 version
  16278.     1.2 EE, the CSD level should be XR04084 or greater.
  16279.  
  16280.  
  16281.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16282.  
  16283.  
  16284.  
  16285.     Closing Remarks                                               Page  16-3
  16286.  
  16287.  
  16288.  
  16289.     If your CSD level  is less than the  above, the COM02.SYS device  driver
  16290.     for your operating system is defective.  You can correct the problem  by
  16291.     either using the COM02.SYS device  driver supplied with OS/2 ver  1.1 or
  16292.     by updating your system to the latest CSD level.  Unfortunately, IBM  is
  16293.     the only  company which  supplies CSD  (customer service  disks) updates
  16294.     which can be obtained by contacting your local authorized IBM dealer.
  16295.  
  16296.     OS/2 1.2 EE CSD levels WR04097  and WR04098 has a problem in  the kernel
  16297.     relating  to  auto-buffering  regardless  of  whether your UART supports
  16298.     auto-buffering or not!   Because the  problem lies within  the kernel it
  16299.     cannot  be  fixed  by  simply  replacing  the  COM0x.SYS or other device
  16300.     driver.  The "fix"  is one of two  options:  1) Go  back to a CSD  level
  16301.     earlier than WR04097 or 2) Upgrade to OS/2 1.3 EE.  Since there will  be
  16302.     no more CSD's released for 1.2, the "fix" is to upgrade to OS/2 1.3 EE.
  16303.  
  16304.                                 OS/2 Version 1.3
  16305.  
  16306.     As of  this writing,  IBM OS/2  v1.3 SE  and OS/2  v1.3 EE  has no known
  16307.     problems.
  16308.  
  16309.                                 OS/2 Version 2.0
  16310.  
  16311.     Magnum BBS  has been  running successfully  on all  releases of OS/2 2.0
  16312.     from the initial  Microsoft beta 2.0  (before IBM took  it over) to  the
  16313.     final "GA" version of IBM OS/2 2.0.
  16314.  
  16315.  
  16316.  
  16317.  
  16318.  
  16319.  
  16320.  
  16321.  
  16322.  
  16323.  
  16324.  
  16325.  
  16326.  
  16327.  
  16328.  
  16329.  
  16330.  
  16331.  
  16332.  
  16333.  
  16334.  
  16335.  
  16336.  
  16337.  
  16338.  
  16339.  
  16340.  
  16341.  
  16342.  
  16343.  
  16344.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16345.  
  16346.  
  16347.  
  16348.  
  16349.  
  16350.  
  16351.  
  16352.  
  16353.  
  16354.  
  16355.  
  16356.  
  16357.  
  16358.  
  16359.  
  16360.  
  16361.  
  16362.  
  16363.  
  16364.  
  16365.  
  16366.  
  16367.  
  16368.  
  16369.  
  16370.  
  16371.  
  16372.  
  16373.  
  16374.  
  16375.                          This Page Intentionally Blank
  16376.  
  16377.  
  16378.  
  16379.     Index                                                          Page  I-1
  16380.  
  16381.  
  16382.  
  16383.                                      - . -
  16384.  
  16385.     .SNP ..................... 9-5, 9-57
  16386.  
  16387.                                      - < -
  16388.  
  16389.     <F7> ..................... 5-15, 7-4
  16390.  
  16391.                                      - @ -
  16392.  
  16393.     @# ....................... 4-19
  16394.     @A ....................... 4-2
  16395.     @B ....................... 4-3, 4-6, 4-30, 4-50
  16396.     @C ....................... 4-5
  16397.     @D ....................... 4-8
  16398.     @E ....................... 4-10, 4-13, 4-14, 4-15, 7-36
  16399.     @I ....................... 4-16, 4-17, 9-3, 9-4, 9-7
  16400.     @J ....................... 4-18
  16401.     @K ....................... 4-19
  16402.     @L ....................... 4-20
  16403.     @M ....................... 4-21
  16404.     @N ....................... 4-3, 4-6, 4-16, 4-22, 4-23, 4-24, 4-31, 4-32,
  16405.                                4-45, 4-50, 6-19
  16406.     @O ....................... 4-6, 4-25, 4-27, 4-44, 7-30
  16407.     @P ....................... 4-3, 4-30
  16408.     @R ....................... 4-31
  16409.     @S ....................... 4-33
  16410.     @T ....................... 4-34
  16411.     @U ....................... 4-6, 4-35, 4-44, 4-49
  16412.     @V ....................... 4-39, 4-44
  16413.     @W ....................... 4-41
  16414.     @Y ....................... 4-18
  16415.     @Z ....................... 4-3, 4-4, 4-6, 4-16, 4-31, 4-32, 4-42, 4-43,
  16416.                                4-50, 6-19
  16417.     @\ ....................... 4-46
  16418.  
  16419.                                      - A -
  16420.  
  16421.     ACE ...................... 2-1, 5-4, 5-10, 5-11, 5-13, 6-3, 8-1, 8-2,
  16422.                                8-3, 8-4, 8-5, 15-8, 16-2
  16423.     AMMO ..................... 2-2, 6-4, 7-27, 15-1, 15-2, 15-3, 15-4, 15-5,
  16424.                                15-6, 15-7, 15-8
  16425.     ANNOUNCE ................. 1-8, 2-1, 2-7, 5-1, 5-6, 5-7, 6-2, 8-3, 8-4
  16426.     ANSI-EDITOR .............. 7-11
  16427.     ARQ ...................... 7-18
  16428.  
  16429.                                      - B -
  16430.  
  16431.     BELL ..................... 5-1, 5-2, 5-3, 7-4
  16432.     Blockwrite ............... 5-12
  16433.     Blog() ................... 9-28, 9-36, 9-37, 9-56, 9-59
  16434.  
  16435.                                      - C -
  16436.  
  16437.  
  16438.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16439.  
  16440.  
  16441.  
  16442.     Page  I-2                                                          Index
  16443.  
  16444.  
  16445.  
  16446.     CC List .................. 12-1, 12-2
  16447.     CTS ...................... 1-1
  16448.     Call() ................... 9-28, 9-45, 9-47
  16449.     Carrier .................. 1-7, 1-8, 4-6, 5-1, 5-2, 5-8, 5-9, 6-1, 9-12,
  16450.                                16-1
  16451.     Chat ..................... 1-2, 1-14, 1-23, 2-6, 3-3, 4-28, 5-9, 5-15,
  16452.                                6-19, 7-4, 7-5, 13-2
  16453.     Child .................... 1-7, 1-23, 2-1, 2-5, 4-28, 4-39, 4-40, 6-1,
  16454.                                6-3, 6-15, 7-8, 7-14, 7-24, 7-35, 7-37, 9-31,
  16455.                                9-52, 9-56
  16456.     Clog() ................... 9-28, 9-37, 9-46, 9-59
  16457.     Compression .............. 2-2, 2-4, 3-4, 4-37, 6-4, 6-5, 6-6, 6-8, 7-2,
  16458.                                7-6, 7-22, 7-23, 9-7
  16459.     Crash Recovery ........... 7-18
  16460.  
  16461.                                      - D -
  16462.  
  16463.     DCE ...................... 1-8, 16-1
  16464.     DISP_CMDS ................ 1-17, 4-1, 4-46, 4-47, 7-30, 15-9
  16465.     DTE ...................... 1-8, 1-10, 7-7, 16-1, 16-2
  16466.     DTR ...................... 1-1, 1-4, 16-1
  16467.     Door ..................... 2-5, 11-1
  16468.  
  16469.                                      - E -
  16470.  
  16471.     ENDNOW ................... 5-8, 5-9
  16472.     EQUATE ................... 9-44, 9-53, 9-54, 9-58
  16473.     Environment .............. 4-8, 4-43, 6-1, 7-23
  16474.     Error Correction ......... 4-37, 9-12
  16475.     Exit() ................... 9-28, 9-29
  16476.     External File Compression  2-2
  16477.     External file compression  2-2
  16478.  
  16479.                                      - F -
  16480.  
  16481.     FILE MENU ................ 1-22, 1-23, 1-24, 3-4, 4-7, 6-11, 6-12
  16482.     FORCEOFF ................. 5-2, 5-3
  16483.     FSTART ................... 9-57, 9-58, 9-59
  16484.     FSTOP .................... 9-57, 9-58, 9-59
  16485.     File group ............... 4-38, 9-7, 14-1
  16486.     Form Letters ............. 9-1, 9-34
  16487.  
  16488.                                      - G -
  16489.  
  16490.     Goto() ................... 9-47
  16491.  
  16492.                                      - I -
  16493.  
  16494.     If() { ................... 9-59
  16495.     Indirect addressing ...... 4-46, 4-49, 4-50, 4-51, 4-52, 9-42, 9-43,
  16496.                                9-61
  16497.     Initialization ........... 1-9, 3-2, 4-31, 9-2, 9-13
  16498.     Input() .................. 9-28, 9-38, 9-46
  16499.  
  16500.  
  16501.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16502.  
  16503.  
  16504.  
  16505.     Index                                                          Page  I-3
  16506.  
  16507.  
  16508.  
  16509.                                      - L -
  16510.  
  16511.     LAN ...................... 1-2, 1-5, 1-6, 1-8, 2-1, 7-4, 7-34, 10-1,
  16512.                                13-1, 13-2, 13-3, 15-2
  16513.     LINE-EDITOR .............. 7-12
  16514.     LOCKOUT .................. 5-5, 7-13
  16515.     LOGON .................... 1-2, 1-5, 1-15, 1-20, 2-2, 2-3, 2-7, 3-1,
  16516.                                3-2, 3-3, 4-28, 4-33, 5-1, 5-3, 5-4, 5-6,
  16517.                                5-7, 5-13, 6-2, 6-3, 6-4, 6-8, 6-9, 6-10,
  16518.                                6-13, 6-16, 7-1, 7-2, 7-15, 7-23, 7-33, 15-4,
  16519.                                15-5
  16520.     Log() .................... 9-32, 9-33, 9-36, 9-37, 9-56, 9-59
  16521.  
  16522.                                      - M -
  16523.  
  16524.     MAIN MENU ................ 1-16, 1-18, 1-22, 1-23, 1-24, 1-25, 2-2,
  16525.                                4-33, 6-4, 6-11, 6-12, 7-1, 7-3, 7-4, 7-5,
  16526.                                7-6, 7-7, 7-8, 7-9, 7-25, 7-34, 7-36, 11-1
  16527.     MBBSINIT ................. 1-26, 2-1, 3-1, 3-2, 4-37, 5-6, 5-7, 6-2,
  16528.                                9-2, 9-3, 9-56
  16529.     MESSAGE MENU ............. 1-22, 1-23, 1-24, 4-31, 6-11, 6-12, 7-3, 7-9,
  16530.                                7-10, 7-11, 7-12, 7-13, 7-14, 7-22
  16531.     MNP ...................... 1-10, 1-12, 1-13, 7-18, 9-12
  16532.     Magnum-to-Magnum ......... 5-14, 7-27, 15-1, 15-2, 15-3, 15-4, 15-5,
  16533.                                15-6, 15-7, 15-8, 15-9
  16534.     Mail account ............. 15-4, 15-7
  16535.     Mailing Labels ........... 9-1, 9-32, 9-34
  16536.     Marked files ............. 7-15, 7-24
  16537.     Marking .................. 7-12, 12-1
  16538.     Message group ............ 9-7
  16539.  
  16540.                                      - N -
  16541.  
  16542.     NotePad .................. 6-20, 7-12, 12-1, 12-2, 15-4
  16543.     NotePad Facility ......... 12-1, 12-2
  16544.  
  16545.                                      - O -
  16546.  
  16547.     Offline .................. 10-1, 11-1
  16548.  
  16549.                                      - P -
  16550.  
  16551.     POWER .................... 3-1, 4-15, 4-17, 4-23, 4-24, 4-31, 4-45,
  16552.                                9-22, 9-24, 9-56, 11-1
  16553.  
  16554.                                      - R -
  16555.  
  16556.     RJE ...................... 1-13, 1-17, 1-22, 1-23, 1-25, 2-1, 2-2, 2-3,
  16557.                                2-5, 2-6, 4-10, 4-11, 4-12, 4-28, 4-37, 4-39,
  16558.                                4-40, 6-2, 6-7, 6-8, 6-11, 6-12, 6-16, 7-2,
  16559.                                7-3, 7-7, 7-8, 7-14, 7-23, 7-24, 7-35, 7-36,
  16560.                                7-37, 9-1, 9-3, 9-5, 9-7, 9-8, 9-11, 9-12,
  16561.                                9-13, 9-21, 9-27, 9-56, 11-1, 11-2, 13-3,
  16562.  
  16563.  
  16564.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16565.  
  16566.  
  16567.  
  16568.     Page  I-4                                                          Index
  16569.  
  16570.  
  16571.                                16-2
  16572.     RMAIL .................... 1-17, 5-14, 7-31, 15-1, 15-2, 15-3, 15-4,
  16573.                                15-5, 15-7, 15-8
  16574.     RTS ...................... 1-1
  16575.     Redirected serial port ... 1-8
  16576.     Refresh .................. 5-10
  16577.     Remap .................... 2-1, 13-3
  16578.     Remote Mail .............. 1-17, 2-2, 4-38, 5-14, 6-4, 7-31, 9-7, 12-2,
  16579.                                15-1, 15-2, 15-3, 15-4, 15-5, 15-6, 15-7,
  16580.                                15-8, 15-9
  16581.     Remote Snoop ............. 1-21, 7-33
  16582.     Restore_data() ........... 4-47, 9-51
  16583.     Return(x) ................ 9-46, 9-58, 9-60, 9-61
  16584.  
  16585.                                      - S -
  16586.  
  16587.     SNOOP .................... 1-21, 1-25, 5-2, 7-33
  16588.     STARTUP .................. 1-1, 1-3, 1-4, 1-5, 1-6, 1-8, 1-9, 1-10,
  16589.                                1-14, 1-15, 1-17, 1-22, 1-26, 2-1, 3-1, 4-37,
  16590.                                4-39, 5-4, 5-7, 5-13, 5-14, 5-16, 6-1, 6-2,
  16591.                                6-3, 6-8, 6-13, 7-3, 7-6, 7-8, 7-14, 7-16,
  16592.                                7-22, 7-35, 7-37, 8-1, 8-3, 9-7, 9-12, 9-50,
  16593.                                9-51, 9-62, 11-1, 13-1, 13-2, 13-3, 15-9,
  16594.                                16-1, 16-2
  16595.     SWITCH ................... 1-4, 5-2, 5-3, 5-4, 5-15, 7-4, 7-6, 7-8,
  16596.                                7-17, 7-33, 9-7
  16597.     SYSOP MENU ............... 1-7, 1-22, 1-24, 1-25, 5-5, 6-4, 6-11, 6-12,
  16598.                                7-1, 7-8, 7-25, 7-26, 7-27, 7-28, 7-29, 7-30,
  16599.                                7-31, 7-32, 7-33, 7-34, 7-35, 9-27, 14-1,
  16600.                                15-5
  16601.     Save_data() .............. 4-47, 9-51
  16602.     Security Level ........... 1-15, 1-18, 1-19, 1-22, 1-23, 1-24, 2-2, 2-7,
  16603.                                4-20, 4-36, 5-5, 6-9, 6-11, 6-12, 7-3, 7-4,
  16604.                                7-8, 7-16, 7-25, 7-29, 7-30, 9-1, 9-6, 9-12,
  16605.                                9-17, 9-21, 9-22, 9-53, 14-1, 14-2
  16606.     Server ................... 1-2, 1-6, 1-8, 13-2, 13-3
  16607.     Shutdown ................. 5-1, 5-3, 5-8, 5-9, 7-33, 8-4
  16608.     Slog() ................... 9-28, 9-36, 9-37, 9-59
  16609.     Sysbell .................. 5-11
  16610.     System() ................. 9-28, 9-49, 9-51, 9-60
  16611.  
  16612.                                      - T -
  16613.  
  16614.     TIME+NNN ................. 5-6
  16615.  
  16616.                                      - W -
  16617.  
  16618.     While() .................. 9-28, 9-39, 9-57, 9-59
  16619.     While() { ................ 9-59
  16620.     Workstation .............. 1-2, 13-1, 13-2, 13-3
  16621.  
  16622.                                      - Y -
  16623.  
  16624.     Ymodem-G ................. 1-7, 7-15, 7-18
  16625.  
  16626.  
  16627.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16628.  
  16629.  
  16630.  
  16631.     Index                                                          Page  I-5
  16632.  
  16633.  
  16634.  
  16635.                                      - Z -
  16636.  
  16637.     Zmodem ................... 7-18
  16638.  
  16639.  
  16640.  
  16641.  
  16642.  
  16643.  
  16644.  
  16645.  
  16646.  
  16647.  
  16648.  
  16649.  
  16650.  
  16651.  
  16652.  
  16653.  
  16654.  
  16655.  
  16656.  
  16657.  
  16658.  
  16659.  
  16660.  
  16661.  
  16662.  
  16663.  
  16664.  
  16665.  
  16666.  
  16667.  
  16668.  
  16669.  
  16670.  
  16671.  
  16672.  
  16673.  
  16674.  
  16675.  
  16676.  
  16677.  
  16678.  
  16679.  
  16680.  
  16681.  
  16682.  
  16683.  
  16684.  
  16685.  
  16686.  
  16687.  
  16688.  
  16689.  
  16690.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1992 Gilmore Systems
  16691.  
  16692.  
  16693.  
  16694.  
  16695.  
  16696.  
  16697.  
  16698.  
  16699.  
  16700.  
  16701.  
  16702.  
  16703.  
  16704.  
  16705.  
  16706.  
  16707.  
  16708.  
  16709.  
  16710.  
  16711.  
  16712.  
  16713.  
  16714.  
  16715.  
  16716.  
  16717.  
  16718.  
  16719.  
  16720.  
  16721.                          This Page Intentionally Blank
  16722.  
  16723.